5/18/2011

IE9 の HTML5 Audio について

先月、東日本大震災 震災情報ラジオ TweetRadio (現在はサービスを終了しております)を作りましたが、IE9 の HTML5 Audio の動作が Firefox 、 Google Chrome 、Safariと動作が異なったので、IE9のAudioの振る舞いについて紹介しておきます。

Firefox、 Google Chrome、 Safari の動作
  1. JavaScriptでAudioオブジェクトを作ることができる
  2. AudioのSrcを他のドメインのオーディオファイルに設定することができる
  3. wavオーディオが再生できる

IE9の動作
  1. JavaScriptでAudioオブジェクトを作ることができないので、Audioタグを使う必要がある
  2. AudioのSrcを他のドメインのオーディオファイル(異なるドメイン名のサーバから取得する場合。今回はWindows Azure Blob Storage)にすると、クロスドメインアクセスとなりオーディオファイルがホストされているサーバに、「clientaccesspolicy.xml」か「crossdomain.xml」が必要となる。TweetRadioでは、Blobストレージの$rootにclientaccesspolicy.xmlを設置している。
  3. wavオーディオを再生することができない。Windowsといえばwavと思っていたのに不思議な感じです。今回はmp3にて再生。

IE9だけ動作が違うので、仲間外れっぽく見えますが、FlashやSilverlightで行っているクロスドメインアクセスなどの機能が入っていてしっかり作られているように見えます。