2012-05-05 4 views
19

Ist es möglich, zu einem bestimmten Punkt in html5 video auf einer Webseite angezeigt zu suchen? Ich meine, kann ich einen bestimmten Zeitwert eingeben (sagen wir 01:20:30:045) und die Steuerung des Spielers (Slider) auf diesen Punkt verschieben und ab diesem Punkt spielen?Suche nach einem Punkt in html5 Video

In älteren Version von Mozilla vlcplugin Ich denke, das ist möglich durch seek(seconds,is_relative) Methode ..aber ich würde gerne wissen, ob dies in HTML-Video möglich ist.

Edit:

ich die Seite mit Video erstellt und hinzugefügt Javascript als below.When ich auf den Link klicken, zeigt es die Zeit click..but es nicht die Wiedergabeposition nicht erhöht .. aber spielt weiter normal.

Sollte sich der Speicherort für das Video nicht ändern?

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

Mögliche Duplikat [HTML5-Video sucht \ [aktualisiert \]] (http://stackoverflow.com/questions/9311570/html5-video-seeking-updated) – rogerdpack

Antwort

1

Leider scheint es mit einigen Filmelementen es als andere anders verhält. Zum Beispiel mit einem Amazon Video-Element, es scheint, Sie müssen Pause aufrufen, bevor Sie irgendwo suchen können, dann rufen Sie spielen. Wenn Sie jedoch nach der Einstellung currentTime "zu schnell" spielen, wird es nicht mehr angezeigt. Ungerade.

Hier ist meine aktuelle Arbeit um:

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