iOSのsafariではvideoタグのautoplayができないということ

html5を触ってみようと思い、videoタグをいじっていたのだけど、iPadで自動再生(autoplay)ができない。
PCの方は、IE9, chrome17, firefox11, opera11, safari5で問題なくautoplayが効く。
safari developerに行ってみると、iOSの注意事項(こちら)として以下と書いてあり納得。

...上記リンク先から転記

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.

This plays the movie: < input type="button" value="Play" onClick="document.myMovie.play()" >

This does nothing on iOS:


...以下、勝手な訳
iOSsafariiPadを含む全てのデバイス)では、ユーザーがセルラーネットワーク(携帯電話網)上にあって、データユニットによって課金されるので(=パケットで従量課金されるので)、preloadとautoplayは無効になっている。ユーザーによって(データのロードが)指示されない限り、データはロードされない。つまり、javascriptのplay()やload()もまた、ユーザーによって発火されない限り無効となっている。ユーザーが操作するplayボタンは有効になっているが、onloadイベントでplay()を実行させることはできない。

なるほど、日本だどパケ放題だけど、「勝手にユーザーさんにムービーみたいな重たいものを送るんじゃないぞ」という考え方。appleさんが正しいですね。納得しました。


Videoタグについては、jsdo.itのこちらのサンプルがとっつきやすくてよいです。感謝感謝。