Sehr seltsame Fehler, die ich nicht herausfinden kann.
Ich versuche, ein HTML5-Video von einer bestimmten Position aus zu spielen, wenn ein Benutzer auf "Play" klickt. Ich versuche, es richtig zu suchen, wenn das Video abgespielt wird.
Bei meinem Spielereignis mache ich this.currentTime = X
Im Browser funktioniert es gut. Aber auf dem IPad, wenn ich das Video abspiele, sucht das Video nicht nach der richtigen Position (es beginnt bei Null).
Noch seltsamer, wenn ich den this.currentTime = X
Aufruf in einem setTimeout von sagen wir mal 1 Sekunde mache, funktioniert es auf dem IPad (manchmal).
Laden Sie unter iOS Videos zur Spielzeit (siehe Punkt 2), nicht zum Laden der Seite. Meine Vermutung ist, dass das Video nicht geladen wird, wenn Sie this.currentTime = X
ausführen, also hat es keinen Effekt. Dies erklärt auch, warum eine Verzögerung der Operation manchmal das Problem beheben kann: manchmal wurde sie nach einer Sekunde geladen, manchmal nicht.
Ich habe kein iOS-Gerät zum Testen, aber ich würde vorschlagen, eine loadeddata
zu binden Listener zu dem Video, so dass deine currentTime
-Manipulation nur passiert, nachdem das Video geladen wurde:
Sie müssen isIOSDevice
anderswo in Ihrem Code festlegen, abhängig davon, ob der aktuelle Besuch von einem iOS-Gerät stammt.
Während diese Frage ziemlich alt ist, bleibt das Problem offen. Ich habe eine Lösung gefunden, die auf mehreren getesteten iPads (1 + 2 + 3) für iOS 5 und 6 (iOS3 + 4 nicht getestet) funktioniert:
Grundsätzlich müssen Sie zuerst auf das initiale playing
-Ereignis warten, dann einen einmaligen Binder für canplaythrough
und dann für progress
hinzufügen - nur dann können Sie tatsächlich den currentTime
-Wert ändern. Alle Versuche davor werden fehlschlagen!
Das Video muss zuerst abgespielt werden, was eine schwarze Ebene über dem Videoelement praktisch macht. Leider können Sounds innerhalb des Videos NICHT über JavaScript deaktiviert werden - & gt; kein perfektes UX
%Vor%Das Ganze kann von meinem GitHub Repo
heruntergeladen werdenapsillers ist richtig. Sobald das Video abgespielt wird, erscheint der Quicktime-Player und das Video kann nicht gefunden werden, bis das erste "Fortschritt" -Ereignis ausgelöst wird. Wenn Sie versuchen, danach zu suchen, erhalten Sie einen ungültigen Statusfehler. Hier ist mein Code:
%Vor% versuche, deine X
auf 1 Dezimalstelle zu begrenzen
Wie Sie bereits erwähnt haben, funktioniert es manchmal nach einer Sekunde. Haben Sie versucht, die Position festzulegen, nachdem das Ereignis playing
ausgelöst wurde? oder vielleicht sogar das canplaythrough
-Ereignis
Sehen Sie sich die Quelle von dieser Seite an, um eine ganze Liste von Ereignissen zu sehen kann verwendet werden (in der Javascript-Datei)
Tags und Links javascript ios html5 video ipad