Sto cercando di costruire un video player, che funzioni ovunque. finora andrei con:
<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>
(come visto su diversi siti, ad esempio video per tutti ) finora, tutto bene.
ma ora voglio anche una sorta di playlist / menu insieme al video player, dal quale posso selezionare altri video. quelli dovrebbero essere aperti nel mio lettore immediatamente. quindi dovrò "cambiare dinamicamente la fonte del video" (come visto su dev.opera.com/articles/everything-you-need-to-know-html5-video-audio/ - section "Guardiamo un altro film ") con javascript. dimentichiamoci del flashplayer (e quindi di IE) per il momento, cercherò di affrontarlo più tardi.
quindi il mio JS per cambiare i <source>
tag dovrebbe essere qualcosa del tipo:
<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>
il problema è che non funziona in tutti i browser. vale a dire, firefox = O c'è una bella pagina, dove puoi osservare il problema che sto riscontrando: http://www.w3.org/2010/05/video/mediaevents.html
non appena innesco il metodo load () (in Firefox, intendiamoci), il lettore video muore.
ora ho scoperto che quando non uso più <source>
tag, ma invece solo un attributo src all'interno del <video>
tag, tutto funziona in firefox.
quindi il mio piano è semplicemente quello di usare quell'attributo src e determinare il file appropriato usando la funzione canPlayType () .
sto facendo qualcosa di sbagliato o complicando le cose ??
<source>
tag. allora suppongo che sarebbe più facile