私はどこでも動作するビデオプレーヤーを構築しようとしています。これまでのところ私は行くでしょう:
<video>
<source src="video.mp4"></source>
<source src="video.ogv"></source>
<object data="flowplayer.swf" type="application/x-shockwave-flash">
<param name="movie" value="flowplayer.swf" />
<param name="flashvars" value='config={"clip":"video.mp4"}' />
</object>
</video>
(いくつかのサイトで見られるように、たとえばみんなのビデオ)、これまでのところ、とても良いです。
しかし今、私はまた、他のビデオを選択することができるビデオプレーヤーと一緒にある種のプレイリスト/メニューが欲しいです。これらはすぐにプレイヤー内で開く必要があります。私はする必要がありますように見られるように(「動的映像のソースを変更」dev.opera.com/articles/everything-you-need-to-know-html5-video-audio/セクション「他の映画で見てみましょう- ")javascriptを使用。とりあえずflashplayer(つまりIE)の部分については忘れましょう。後でそれについて説明します。
<source>
タグを変更する私のJS は次のようなものでなければなりません:
<script>
function loadAnotherVideo() {
var video = document.getElementsByTagName('video')[0];
var sources = video.getElementsByTagName('source');
sources[0].src = 'video2.mp4';
sources[1].src = 'video2.ogv';
video.load();
}
</script>
問題は、これがすべてのブラウザで機能しないことです。つまり、firefox = Oには、私が抱えている問題を確認できる素敵なページがあります。http://www.w3.org/2010/05/video/mediaevents.html
load()メソッドをトリガーすると(Firefoxの場合は注意してください)、ビデオプレーヤーが終了します。
複数の<source>
タグを使用せず、<video>
タグ内のsrc属性を1つだけ使用すると、Firefoxですべてが機能することがわかりました。
したがって、私の計画は、そのsrc属性を使用し、canPlayType()関数を使用して適切なファイルを決定することです。
どういうわけかそれを間違っているのか、それとも複雑なのか
<source>
タグを付けてFirefoxで機能させる方法があったように、私が何かを見逃した場合 それなら私はそれがより簡単になると思います