2012年1月25日水曜日

audioタグとsourceタグについて。

現在youtubeブックマークレットでは、
<audio src="動画アドレス"/>
という形でタグを利用しているわけですが、
<audio>
  <source src="動画アドレス" />
</audio>
という形でもソースを指定することができます。

この挙動について、iphone上でしらべてみました。

1つめ、audioタグにsource属性をappendChildで追記したらどうなるか
追記を実行すると、データが取り込まれました。(あたりまえです。)
sourceタグは複数設定すると、一番はじめに設定されてかつ、利用可能なデータを採用するという挙動をしますので、さらにappendChildを繰り返すとsourceがいれかわりません。(はじめにいれたものが採用されるため。)
一回、removeChildで前に設定した要素を取り除けばOKみたいです。

2つめ、removeChildで要素をとりのぞいても、別のsourceを設定しないかぎりデータが有効になるっぽい。
removeChildしたから、再生がまったくできなくなるわけではないみたいです。

3つめ、sourceタグを別にもってもcacheされない。
chromeやsafariでの動作の場合はaudioデータがキャッシュされることがあるので、sourceをいれかえるとすぐに再生できたりしますが、iphone上でsourceの入れ替えを実行してしまうと、あたらしいデータが読み込みしなおしになります。

4つめ、audioタグを複数にわけておけば、キャッシュが有効になるみたい。
音楽データをいれた別のタグを準備しておけばキャッシュみたいなことが実装できるみたいです。
ただし、タグを超えて制御するためには、ちと制限がおおすぎ。

とりあえずここまでわかりました。
youtubeブックマークレットも、mp4データをもつ別々のaudioタグをつくっていけば、電波のないところでも、複数音楽ファイルの再生ができるかもしれないですね。

0 件のコメント:

コメントを投稿