2012-05-05 12 views
19

È possibile cercare un punto particolare in html5 video visualizzato in una pagina Web? Voglio dire, posso inserire un particolare valore temporale (ad esempio 01:20:30:045) e il controllo del giocatore (cursore) si sposta su quel punto e suona da quel punto in poi?cercare un punto nel video html5

Nella versione precedente di mozilla vlcplugin penso sia possibile tramite il metodo seek(seconds,is_relative)..ma vorrei sapere se questo è possibile nel video html.

Edit:

ho creato la pagina con il video e JavaScript come Below.when clicco sul link aggiunto, visualizza il tempo di click..but che non incrementa la posizione di gioco .. ma continua a suonare normalmente.

Non dovrebbe cambiare la posizione di riproduzione del 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

Possibile duplicato del [video HTML5 che cercano \ [aggiornato \]] (http://stackoverflow.com/questions/9311570/html5-video-seeking-updated) – rogerdpack

risposta

1

Purtroppo sembra con alcuni elementi del film si comporta in modo diverso rispetto ad altri. Ad esempio con un video_element di amazon, sembra che tu debba chiamare la pausa prima di poter cercare ovunque, quindi chiamare play. Tuttavia, se chiami "troppo rapidamente" la riproduzione dopo aver impostato currentTime, non si attiverà. Dispari.

Qui è il mio lavoro attuale in giro:

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); 
}