Spielen html5-video-tag gleichzeitig auf Safari
habe ich dieses komische Verhalten auf html5-video-tag.
Ich habe 4 videos, die ich spielen möchte, an der gleichen Zeit.
So erstelle ich meine eigene Steuerleiste auf Wiedergabe/pause, so dass, wenn die play-Taste geklickt wird, werden alle 4 videos gespielt wird, gleich als pause-Taste.
Auf safari, es hat komische problem, das video zu spielen, nicht gleichzeitig 1 oder 2 videos Verzögerung, wenn ich auf " spielen, also nicht alle videos zur gleichen Zeit spielen.
In Chrome und Firefox funktioniert ' s allright, was falsch ist mit safari?
Bin ich mit javascript .play()
Funktion zu spielen, alle videos.
Ich auch stellen Sie sicher, dass das video geladen wird, bevor es zu spielen. So etwas wie,
<video id="example_video_1" class="video-js vjs-default-skin" preload="auto">
<source src="asset/video/al_vertrag_kranken_v1_part1.ogv" type='video/ogg' />
<source src="asset/video/al_vertrag_kranken_v1_part1.mp4" type='video/mp4' />
<source src="asset/video/al_vertrag_kranken_v1_part1.webm" type='video/webm' />
</video>
video_1 = document.getElementById('example_video_1');
if (video_1.readyState == 4 && video_2.readyState == 4 && video_3.readyState == 4 && video_4.readyState == 4) {
video_1.play();
video_2.play();
video_3.play();
}
gibt es noch 3 weitere video-tag wie, dass,, die 1 ist nur ein Beispiel.
- Wahrscheinlich, weil die anderen videos haben unterschiedliche vor-Ladezeiten
- ich verwende bereits
.readyState
- Funktion vor der Wiedergabe des Videos. Aber immer noch nicht funktioniert. ich Bearbeiten meine Frage - Wie ist Ihre setup-code für die video-Elemente?
- bearbeitet meine Frage bitte noch einmal schauen, danke 🙂
- Sind alle videos verzögert gleichen Zeit? wie: Video 1 <--> Video 2 ( 2sec ), Video 2 <--> Video-3 - ( 2sec ) etc..
- Als überraschend schwierig. Die nächsten habe ich auf Safari ist innerhalb von ~27ms jedes andere, im Vergleich zu ~3ms auf Chrome. Was ist der use-case -- nur, wie genau muss Sie sein?
- haben Sie die Antwort gefunden @morgan9999 ??
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte überprüfen Sie diese Geige ich habe für Sie vorbereitet, um dies zu testen mit Videojs
Ich denke, dass ist das, was Sie brauchen 😉
Wie Sie sehen können, das problem mit safari ist immer etwas Los. In chrome, oder andere, die seine Arbeit perfekt. Es scheint zu sein, erzeugt durch eine Verzögerung beim starten der Wiedergabe von videos. Das gleiche passiert, wenn die Wiedergabe beginnt für audio.
vielleicht in das stack youll finden Sie Ihre Lösung. Es scheint, dass die audio-Lösung ist, erstellen Sie eine swf (FLASH) Objekt und zum Abspielen von videos mit ihm (ich weiß nicht, über Sie, aber ill versuchen Sie zur Vorbereitung ein weiteres Bearbeiten, um die Antwort mit einem Beispiel)
BEARBEITEN
Hoffe es hilft dir.
JS:
HTML:
Versuchen zu überwachen
canplay
Ereignis für alle 4 Elemente. So etwas wieAls pro Safari HTML-Audio-Video-Guide
Synchronisieren Mehrerer Media-Elementen Zusammen, Bis das Aufkommen der Medien-Controller, sicherzustellen, dass zwei oder mehr videos gespielt zu genau der gleichen Zeit war ein anspruchsvolles Unterfangen.
Medien-Steuerungen lassen Sie die Gruppe eine beliebige Anzahl von audio und/oder video-Elemente, so dass Sie verwaltet werden können, einen universal-Satz von Steuerelementen, und auch so, dass Sie gehalten werden kann, in perfekt synchron, auch wenn ein Netzwerk-Schluckauf Auftritt.
Erstellen Sie einen Medien-controller, fügen Sie einfach die
mediagroup
- Attribut auf alle Elemente, die Sie synchronisieren wollenzusammen. Der Wert, den Sie wählen, zuordnen
mediagroup
ist bis zu Ihnen—solange der Wert ist der gleiche für jeden geschuftet element, ein media controller werden implizit erstellt.Meisten die gleichen Funktionen, Attribute, und Veranstaltungen zur Verfügung, um audio-und video-Elemente sind ebenfalls verfügbar, um Medien-Controller. Anstelle von aufrufen
play()
oderpause()
direkt auf das video selbst, Sie rufen Sie auf diemedia controller.
Controlling Medien mit JavaScript
Synchronisieren Mehrerer Media-Elemente Zusammen
2012-12-13 | Copyright © 2012 Apple Inc. Alle Rechte Vorbehalten.
Hinweis: Zwei Attribute, die nicht unterstützt werden von media-Controller sind die Schleife und die automatische Wiedergabe.
Zugriff auf das controller-Objekt auf einem der slaved-media-Elemente geben eine Steuerung der gruppierten
Elemente. Sie können auch einen Medien-controller, der vollständig in JavaScript, ohne dass zum ändern der Attribute
deine HTML:
Wenn eine video-Stände oder stottert, die anderen videos werden automatisch angehalten, um zu warten, bis die rückständigen video, um aufzuholen. Wenn das video gepuffert und zum Abspielen bereit ist, die restlichen videos wird wieder in sync.
Ich hoffe das hilft...
Und finden Sie diese doc hier
if ( !window.MediaController ) return;
if( !myVideo.controller ) return;
zu vermeiden, TypeError, in anderen Browsern Aber ja, es ist eine schöne Lösung und ich wusste nicht, über diese MediaController.Sieht es aus wie Abspielen von mehreren Videos gleichzeitig wird derzeit nicht unterstützt, auf Safari...
Aus der Safari-HTML5-Audio-und video-guide :
https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW10