犬ターネット

audio タグに Data URI scheme を使って base64 で mp3 を埋め込んでも iOS 上の Safari では再生されない

2014-07-17 safari html5

以下サンプル。PCブラウザだと再生されるけれど、iPhone Safari だと再生されない。

/misc/audio/test.html

公式ドキュメントを読んでも Data URI scheme 使って base64 で音声埋め込むみたいなことは見つからないんだけど、よく読むと答えっぽいのが書いてあった。

Safari HTML5 Audio and Video Guide: iOS-Specific Considerations

In Safari on iOS (for all devices, including iPad), where the user may be on a cellular network and be charged per data unit, preload and autoplay are disabled. No data is loaded until the user initiates it. This means the JavaScript play() and load() methods are also inactive until the user initiates playback, unless the play() or load() method is triggered by user action. In other words, a user-initiated Play button works, but an onLoad="play()" event does not.

iOS の Safari については、

とのこと。base64使っていきなりデータをロードするのは仕様的に無理なんだろうな。

実家にいたころ怖かったもの
負の連鎖