ネットエイドで内容更新毎に音を鳴らしてほしいという要望が先月末にあって、HTML5のAudio要素を使えば鳴るかもねとは思った。
Audio要素の経験が無いからしばらく放置したのだが、クロススキャン・リリースの週末にAudio要素の実装方法を調べ、コンテンツがHTML4.01であってもJavascriptからAudioオブジェクトを操作すれば鳴らすことが出来ると分かった。
最初、表示データ受信毎に鳴らしてみたら3秒おきに鳴ってしまうので、最終更新時刻とコンテンツ中に表示内容が更新された旨のデータを追加し鳴動タイミングを管理できるようになった。
しかし各ウェブブラウザでHTML5のAudio機能の実装が異なり、すべて同じ音源ファイルで鳴らすことができない。例えばFirefoxはmp3形式をサポートせずogg形式をサポート、IE9/10はogg形式をサポートしない、Chromeはどれでも鳴らすことができる。
HTML5に対応しないIE8以前は鳴らすことができない。「昔から音がなっているでしょ?」、いえいえあれは埋め込みオブジェクトによるものがほとんど。
などと環境の違いに対応しなくてはならない。この辺は先人の知恵(つまりはググる)によりAudio機能・サポート形式の検出を行った。
結果、週頭から評価版を出したのだが、どうやらIE9のAudio要素は限定的な対応らしくコンテンツ中にAudioタグで記述すればJavascriptで制御可能だが、Audioオブジェクトを新たに生成することができない制限があった。
IE9はVistaとWin7で動作するが、どうもWin7では制限が解消されているらしく鳴るが、VistaとIE9の組み合わせでは鳴らすことが出来なかった。性質の悪いことにAudio機能は有効と認識できるしサポート形式も認識できる、でも鳴らないというオチだ。
ということで、VistaではFirefoxあるいはChromeを使ってほしい。
アクセスログからはVista + IE9の方がいるようなので念のため。
コメント