2012-05-05 24 views
19

¿Es posible buscar un punto particular en html5 video que se muestra en una página web? Quiero decir, ¿puedo ingresar un valor de tiempo particular (digamos 01:20:30:045) y hacer que el control del jugador (control deslizante) se mueva a ese punto y juegue desde ese punto en adelante?buscar un punto en el video html5

En la versión anterior de mozilla vlcplugin Creo que esto es posible por el método seek(seconds,is_relative)..pero me gustaría saber si esto es posible en el video html.

Editar:

creé la página con el vídeo y ha añadido javascript como below.When hago clic en el enlace, se muestra el tiempo de click..but que no incrementa la ubicación juego .. pero continúa jugando normalmente.

¿No debería cambiarse la ubicación de reproducción de video?

html

<video id="vid" width="640" height="360" controls> 
     <source src="/myvid/test.mp4" type="video/mp4" /> 
</video> 
<a id="gettime" href="#">time</a> 
<p> 
you clicked at:<span id="showtime"> </span> 
</p> 

Javascript

$(document).ready(function(){ 
    var player = $('#vid').get(0); 
    $('#gettime').click(function(){ 
      if(player){ 
       current_time=player.currentTime; 
       $('#showtime').html(current_time+" seconds"); 
       player.currentTime=current_time+10; 
      } 
     }); 
} 
); 
+0

duplicado posible de [vídeo HTML5 buscando \ [actualizado \]] (http://stackoverflow.com/questions/9311570/html5-video-seeking-updated) – rogerdpack

Respuesta

1

Por desgracia, parece con algunos elementos de la película, se comporta de manera diferente a los demás. Por ejemplo, con un elemento de video de amazon, parece que debes llamar a pausa antes de poder buscar en cualquier lugar, luego llamar a play. Sin embargo, si llama a jugar "demasiado rápido" después de configurar el currentTime, entonces no se pegará. Impar.

Aquí es mi trabajo actual en torno a:

function seekToTime(ts) { 
    // try and avoid pauses after seeking 
    video_element.pause(); 
    video_element.currentTime = ts; // if this is far enough away from current, it implies a "play" call as well...oddly. I mean seriously that is junk. 
    // however if it close enough, then we need to call play manually 
    // some shenanigans to try and work around this: 
    var timer = setInterval(function() { 
     if (video_element.paused && video_element.readyState ==4 || !video_element.paused) { 
      video_element.play(); 
      clearInterval(timer); 
     }  
    }, 50); 
}