エメラルドマウンテンの麓。

Webブラウザの動的Audioサポートの下限バージョンを探る

DHTML が登場し Web ブラウザがゲームのプラットフォームになる事が知られてからも、ブラウザ側でサウンドを動的に生成する API の提供は遅れました。

mp3 などの静的なオーディオファイルの再生ではなく、javascript 等でインタラクティブにサウンドコンテンツを生成できたら、ブラウザはゲームのプラットフォームとして一層魅力的になります。また一般的に、オーディオファイルに比べて、オーディオを生成するコードの方がファイルサイズが小さい点も Web 配信ではとても有利です。

WebAudio API の登場によってこの不満は完全に解消されますが、API をサポートしないブラウザでもプラグインを利用したり、ハック的に動的オーディオを実現している先例があります。

これらの手法を表にまとめて、チップチューンプレイヤ等に使用できるブラウザの下限を探ってみます。

本記事はバージョンのあたりを付けるに留め、検証環境を用意しての実装はいずれまた頑張ります。

デスクトップ用ブラウザ
ブラウザWebAudiomozWriteAudio(*1)HTMLAudio(*3)Flash 10~Flash 9(*2)
IE, Edge12(*4)65
Firefox23(25)4~273.5Gecko 1.8.1Gecko 1.7.5
Presto Opera119.5?
Chrome10(14)81?1?
Safari6431.3
スマートデバイス用ブラウザ
ブラウザWebAudiomozWriteAudio(*1)HTMLAudio(*3)Flash 10~Flash 9(*2)
Safari Mobile6.14
IE Mobile, Edge Mobile, Modern IE12?10?(*4)
Firefox Mobile23(25)8~27?8Android 2.2–4.1
AOSP, Chrome WebView52.3
Presto Opera Mobile12(*5)
Chrome Mobile28(29)18?Android 4.0–4.1
BlackBerry 10.0–10.3.1○ 11.1
BlackBerry Tablet OS○ 11.1
Maemo○ 9.4
PlayStation 3Firmware 2.50, 9.1(update 3)
Symbian OSFlash Lite 4.0
webOS (Palm and HP)
  1. Firefox 4~27 では Audio Element 拡張が使えました。
  2. FlashPlayer 9 で動的サウンド生成を実現している popforge を参照。
  3. HTMLAudioElementsrc 属性に動的に生成した Data URI スキームな wav を設定している pico.js を参照。
  4. wav をサポートしない IE の為に javascript 製 mp3 encoder を追加する必要がある。Flash Player 等プラグインの使えない Modern IE と IE Mobile 10+ 用に検討する。IE 10 では Worker も使用可能になる。
  5. Android 1.x では動作せず?

IE9 + Windows Media Player + data URI スキームな MIDI の検討。