Frage

Diese Geige ist vom offiziellen Muster kopiert hier gegeben, Aber getCurrentTime() Scheint bei IE0 immer 0 zurückzugeben.Hat jemand schon einmal das gleiche Problem gehabt?

War es hilfreich?

Lösung 2

Dies lag an der Art und Weise, wie die Iframe-API die Flash/HTML5-Unterstützung angeht.

Im Gegensatz zu den Flash- und JavaScript-Player-APIs, bei denen beide ein Flash-Objekt in Ihre Webseite einbetten, postet die IFrame-API Inhalte in einem Tag auf Ihrer Seite.Dieser Ansatz bietet mehr Flexibilität als die zuvor verfügbaren APIs, da er es YouTube ermöglicht, für mobile Geräte, die Flash nicht unterstützen, einen HTML5-Player anstelle eines Flash-Players bereitzustellen.

Das bedeutet:

  1. Verwenden Sie HTML5, wenn nur ein HTML5-Video-Tag verfügbar ist
  2. Verwenden Sie einen Blitz, wenn nur ein Blitz verfügbar ist
  3. Verwenden Sie Blitz, wenn beides verfügbar ist

Wenn beide verfügbar sind, funktioniert die Flash-Version aus bestimmten Gründen nicht richtig.Bekannte Fälle, in denen dies geschieht, sind:

  1. IE10
  2. IE9
  3. OSX Safari, wenn der Benutzer Flash im System installiert hatte

Zwei Lösungen:

  1. Erzwingen Sie die Verwendung des HTML5-Video-Tags, solange beide verfügbar sind, beim Hinzufügen html5=1 im src-Attribut des iframe.
  2. Benutzen Sie die YouTube-Javascript-API stattdessen bei diesen Gelegenheiten, wodurch Flash zuverlässiger eingebettet wird.

Ich habe geschrieben ein jQuery-Plugin Implementieren Sie alle Hacks und Fixes, nehmen Sie, was Sie brauchen, und hoffen Sie, dass es hilft.

Andere Tipps

Ja, ich habe ein ähnliches Problem.Bei mir gibt getCurrentTime() 0 zurück, aber nicht immer – wenn ich ein YouTube-Video abspiele, funktioniert es einwandfrei, aber wenn ich nach dem YouTube-Video ein Brightcove-Video abspiele und dann zu YouTube zurückkehre, wird 0 zurückgegeben.Andere Leute haben ähnliche Probleme, hier gab es eine Diskussion: https://productforums.google.com/forum/#!topic/youtube/F5CEukwhitA

Das Problem scheint mit Konflikten mit anderen Bibliotheken zusammenzuhängen, was meiner Meinung nach auch bei meiner Anwendung der Fall ist.Versuchen Sie, andere Bibliotheken von Drittanbietern zu entfernen und Browsererweiterungen zu deaktivieren und prüfen Sie, ob das Problem weiterhin besteht.

Übrigens haben Sie versucht, den Code außerhalb von jsfiddle auszuführen, d. h.in einer App?


In meinem Fall war der Grund, warum getCurrentTime() 0 zurückgab, dass es an Knoten in getrennten DOM-Bäumen angehängt war.Dies ist ein bekannter Fall, wenn AngularJS und jQuery zusammen verwendet werden und Verweise auf nicht vorhandene (gelöschte) DOM-Elemente im jQuery-Cache verbleiben.

Überprüfen Sie grundsätzlich, an welchen Knoten Ihr Player angeschlossen ist und ob Sie keine Replikate haben.

es war das verschachtelte Ö Objekt im Spielerobjekt, das mich auf den richtigen Weg gebracht hat.PlayerState war 3 Es wurden ständig keine Bytes heruntergeladen usw.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top