2016-12-01 5 views
2

ich nach einer Möglichkeit, das Timeout vor einem HTML5-Video-Element auf einen Netzwerkfehler (HTML5 media element error code 2) berichtetGibt es eine Möglichkeit, das Timeout eines HTML5-Videoelements anzugeben?

Während des Tests habe ich bemerkt, dass, wenn ich die Internet-Verbindung zu stoppen, und die Video hängt Element scheinbar lange puffern, bevor ein Medienfehlercode 2 angezeigt wird. Kann ich diese Zeit überhaupt reduzieren?

Es gab auch einige Fälle, in denen es den Fehler überhaupt nicht meldet und es scheint, für immer zu puffern. Gibt es einen Grund dafür?

Antwort

1

Leider denke ich, dass Sie nicht können, hängt es von jedem Browser Hersteller Implementierung. Nach dem HTML5-Video spec innerhalb Ressource Algorithmus Abruf Sie lesen können:

Der Stall Timeout ist ein User-Agent Länge der Zeit definiert, die etwa drei Sekunden sein sollten. Wenn ein Medienelement, das aktiv versucht, Mediendaten zu erhalten, keine Daten für eine Dauer erhalten hat, die dem Stall-Timeout entspricht, muss der Benutzeragent einen Task zum Absetzen eines einfachen Ereignisses mit dem Namen in den Wartestatus einreihen.

Benutzeragenten können Benutzern das selektive Blockieren oder Verlangsamen von Downloads von Mediendaten ermöglichen. Wenn der Download eines Medienelements vollständig blockiert wurde, muss der Benutzeragent so agieren, als ob er blockiert wäre (im Gegensatz dazu, als ob die Verbindung geschlossen wäre). Die Rate des Downloads kann auch automatisch durch den Benutzeragenten gedrosselt werden, z. um den Download mit anderen Verbindungen, die die gleiche Bandbreite teilen, auszugleichen.

Benutzeragenten können entscheiden, zu keiner Zeit mehr Inhalt herunterzuladen, z. nach dem Puffern von fünf Minuten einer einstündigen Medienressource, während auf den Benutzer gewartet wird, um zu entscheiden, ob die Ressource abgespielt werden soll oder nicht, oder während auf eine Benutzereingabe in einer interaktiven Ressource gewartet wird. Wenn der Download eines Medienelements ausgesetzt wurde, muss der Benutzeragent den networkState auf NETWORK_IDLE setzen und eine Aufgabe in die Warteschlange stellen, um ein einfaches Ereignis namens suspend am Element auszulösen. Wenn und wenn der Download der Ressource fortgesetzt wird, muss der Benutzeragent den networkState auf NETWORK_LOADING setzen.

+0

Gibt es eine Möglichkeit, einen Media Error Code 2 zu fälschen oder zu simulieren, um zu testen, ob er korrekt/elegant gehandhabt wird? – shrewdbeans

+0

'MEDIA_ERR_NETWORK = 2. Ein Netzwerkfehler mit einer bestimmten Beschreibung hat dazu geführt, dass der Benutzeragent die Medienressource nicht mehr abruft, nachdem die Ressource eingerichtet wurde, um verwendbar zu sein. Also, schätze ich, trennen Sie einfach Ihr Internet und verwenden Sie die HTML5-Ereignisse https://developer.mozilla.org/de-DE/docs/Web/Guide/Events/Media_events Behandeln Sie alle möglichen Fehler. –

+0

Wenn der Browser nicht antwortet, kann dies ein Problem im Browser sein. Die Spezifikation beschreibt nur das Verhalten, der Browser-Anbieter ist verantwortlich für die Implementierung. –

Verwandte Themen