Estoy tratando de construir un reproductor de video, que funcione en todas partes. Hasta ahora estaría 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>
(como se ve en varios sitios, por ejemplo, video para todos ) hasta ahora, todo bien.
pero ahora también quiero algún tipo de lista de reproducción / menú junto con el reproductor de video, desde el cual puedo seleccionar otros videos. esos deben abrirse dentro de mi reproductor de inmediato. así que tendré que "cambiar dinámicamente la fuente del video" (como se ve en dev.opera.com/articles/everything-you-need-to-know-html5-video-audio/ - sección "Veamos otra película ") con javascript. Olvidémonos de la parte del flashplayer (y, por lo tanto, IE) por el momento, intentaré lidiar con eso más adelante.
entonces mi JS para cambiar las <source>
etiquetas debería ser algo como:
<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>
El problema es que esto no funciona en todos los navegadores. a saber, firefox = O hay una buena página, donde puedes observar el problema que estoy teniendo: http://www.w3.org/2010/05/video/mediaevents.html
Tan pronto como active el método load () (en Firefox, eso sí), el reproductor de video muere.
ahora he descubierto que cuando no uso varias <source>
etiquetas, sino que solo un atributo src dentro de la <video>
etiqueta, todo funciona en firefox.
así que mi plan es usar ese atributo src y determinar el archivo apropiado usando la función canPlayType () .
¿Lo estoy haciendo mal de alguna manera o estoy complicando las cosas?
<source>
etiquetas entonces supongo que sería más fácil