video要素やaudio要素がJavaScriptで再生できたりできなかったりする

Webページ上でvideo要素やaudio要素を再生するためにJavaScriptでplay()メソッドを使っても再生できない場合があります。また、別のタイミングでは再生できる場合もあります。

これは、突然の音声による迷惑を防止するためのブラウザの自動再生防止機能が原因として考えられます。この機能は事前にページに対して操作がされないと、動画や音声の再生をさせないという機能です。ページに対する操作は何でもよく、機能のないボタンをクリックしても、何でもないページの一部をクリックしても動画や音声の自動再生が可能となります。この自動再生防止機能を知らないと、動画や音声が再生されない原因を追及中に、無意識にページの何でもない部分をクリックしてしまい、現象の再現に失敗してしまうことになります。

対策はコンテンツ開始のためのボタンを作ることです。また、動画の音声をmutedにより止めておくと、動画だけの自動再生ができることもあるようです。

JavaのJComboBoxへの項目の追加方法

Javaにおいても、バージョンが上がっていくうちに、いつの間にかこれまで問題なくコンパイルできたコードに問題が発生することがあります。JavaのコンボボックスであるJComboBoxを作成するだけでも、意外に以下のような「注意」が表示されることがあります。

注意:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。

このようなことが起こらないようなJComboBoxオブジェクトの作り方を何種類かご紹介します。

変数をオブジェクトより先に作る。項目を後で入れる。

private JComboBox<String> jcombox;
jcombox = new JComboBox<>();
jcombox.addItem("a");
jcombox.addItem("b");

文字列でも、文字列の配列でも、記述方法は同じです。

String[] its = {"a", "b"};
private JComboBox<String> jcombox;
jcombox = new JComboBox<>();
jcombox.addItem(its);

変数をオブジェクトと同時に作る。項目を後で入れる。

private JComboBox<String> jcombox = new JComboBox<>();
jcombox.addItem("a");
jcombox.addItem("b");

変数をオブジェクトと同時に作る。項目も同時に入れる。

String[] its = {"a", "b"};
private JComboBox<String> jcombox = new JComboBox<String>(its);