Wenn die aktuelle Uhrzeit geändert wird, muss der Browser mehr Daten entweder vom Cache oder vom Netzwerk laden. Dies kann das Ereignis canplay
auslösen. Und da im Event-Handler eine Zeit eingestellt ist, erhalten Sie eine endlose Schleife (Sie können den Effekt von canplay
ausgelöst here sehen, indem Sie ein Video wählen, spielen und dann zur Mitte nach rechts springen). Es kann vom Browser abhängen.
This page auf MDN sagt folgend den Stand canplaythrough (wenn auch nicht ganz das gleiche ist es vernünftig, dies auch in der Medien-Event-Seite mit Firefox, wie gezeigt gilt für canplay
zu glauben):
Hinweis: Die manuelle Einstellung der currentTime wird schließlich ein canephrotower-Ereignis in Firefox auslösen. Andere Browser können dieses Ereignis möglicherweise nicht auslösen.
Um zu vermeiden, entweder abmelden von der Veranstaltung, oder verwenden Sie eine Flagge, die das Ereignis Ausfahrt zweites Mal zwingt ausgelöst wird.
var initialPlay = false;
$("#vid-pages").find("video").on('canplay', function() {
if (initialPlay) return;
initialPlay = true;
$(this)[0].currentTime = $(this)[0].duration/2;
console.log($(this)[0].currentTime);
});
Zum Abbestellen müssen Sie eine nicht anonyme Funktion verwenden.