Ich habe ziemlich viel Zeit damit verbracht herauszufinden, warum Videos wie hier eingebettet sind:
<video height="256" loop autoplay muted controls id="vid">
<source type="video/mp4" src="video_file.mp4"></source>
<source type="video/ogg" src="video_file.ogg"></source>
</video>
Startet die Wiedergabe automatisch, sobald die Seite in FireFox geladen wurde, kann jedoch in Webkit-basierten Browsern nicht automatisch wiedergegeben werden. Dies geschah nur auf einigen zufälligen Seiten. Bisher konnte ich die Ursache nicht finden. Ich vermute einige nicht geschlossene Tags oder umfangreiche JS, die von CMS-Editoren erstellt wurden.
javascript
html
google-chrome
safari
webkit
Adam Bubela
quelle
quelle
Antworten:
Die beste Lösung, die ich bekommen konnte, war das Hinzufügen dieses Codes direkt nach dem
</video>
... nicht schön, aber irgendwie funktioniert.
UPDATE In letzter Zeit können viele Browser die Videos nur bei ausgeschaltetem Ton automatisch wiedergeben. Daher müssen Sie
muted
dem Video-Tag auch Attribute hinzufügenquelle
$("videoID").get(0).play();
stackoverflow.com/questions/4646998/…$("video[autoplay]").each(function(){ this.play(); });
Nachdem die in
play()
den anderen Antworten vorgeschlagene jQuery- oder DOM-Maniupulation verwendet wurde, funktionierte sie in Chrome für Android (Version 56.0) immer noch nicht (Video wurde nicht automatisch abgespielt).Gemäß diesem Beitrag in developer.google.com , Ab Chrome 53, wird die Option für die automatische Wiedergabe vom Browser respektiert, wenn das Video stummgeschaltet ist .
Durch die Verwendung von
autoplay muted
Attributen in Video-Tags kann das Video ab Version 53 in Chrome-Browsern automatisch wiedergegeben werden.Auszug aus dem obigen Link:
quelle
muted
undautoplay
den Trick gemacht. Vielen Dank!Es kommt vor, dass Safari und Chrome on Desktop die DOM-Manipulation um das Video-Tag nicht mögen. Sie lösen die Wiedergabereihenfolge nicht aus, wenn das Autoplay-Attribut festgelegt ist, selbst wenn das Canplaythrough-Ereignis ausgelöst wurde, wenn sich das DOM um das Video-Tag nach dem ersten Laden der Seite geändert hat. Grundsätzlich hatte ich das gleiche Problem, bis ich eine .wrap () jQuery um das Video-Tag löschte und danach wie erwartet automatisch wiedergegeben wurde.
quelle
.get(0)
oder nur$('#vid')[0].play()
Sie können hier überprüfen
Also einfach stumm hinzufügen
quelle
Für mich war das Problem, dass das
muted
Attribut innerhalb desvideo
Tags hinzugefügt werden musste . Dh:quelle
In Chrome ist die automatische Wiedergabe von Videos mit eingeschaltetem Ton nicht zulässig. Fügen Sie
muted
demvideo
Tag daher ein solches Attribut hinzuquelle
Ich habe gerade das gleiche Problem mit meinem Video
Nach der Suche habe ich eine Lösung gefunden:
Wenn ich die Attribute "Preload" auf "true" setze, wird das Video normal gestartet
quelle
Das Hinzufügen des folgenden Codes am Ende der Seite hat bei mir funktioniert. Ich weiß nicht warum es funktioniert :(
quelle
quelle
var video = document.querySelector('video'); video.muted = true; video.play()
Nur diese Lösung hat mir geholfen,
<video autoplay muted ...>...</video>
hat nicht funktioniert ...quelle
Keine der anderen Antworten hat bei mir funktioniert. Meine Problemumgehung bestand darin, einen Klick auf das Video selbst auszulösen. hacky (wegen des Timeouts, das benötigt wird), aber es funktioniert gut:
quelle
Wir haben kürzlich ein ähnliches Problem mit einem eingebetteten Video behoben und festgestellt, dass die Attribute für die automatische Wiedergabe und die Stummschaltung für unsere Implementierung nicht ausreichen.
Wir haben dem Code ein drittes "playinline" -Attribut hinzugefügt, das das Problem für iOS-Benutzer behoben hat.
Dieser Fix ist spezifisch für Videos, die inline abgespielt werden sollen. Von https://webkit.org/blog/6784/new-video-policies-for-ios/ :
Auf dem iPhone können Elemente jetzt inline abgespielt werden und wechseln nicht automatisch in den Vollbildmodus, wenn die Wiedergabe beginnt. Elemente ohne Playline-Attribute benötigen weiterhin den Vollbildmodus für die Wiedergabe auf dem iPhone. Wenn Sie den Vollbildmodus mit einer Pinch-Geste verlassen, werden Elemente ohne Inline-Wiedergabe weiterhin inline abgespielt.
quelle
Google hat die Autoplay-Richtlinie aktualisiert. Autoplay funktioniert nur im Stummschaltungsmodus. Überprüfen Sie den Link https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
quelle
Versuche dies:
So mache ich es normalerweise. Schleife, Steuerelemente und Autoplay erfordern keinen Wert, sondern boolesche Attribute.
quelle
Dies liegt daran, dass Chrome jetzt die automatische Wiedergabe in HTML5-Videos verhindert. Daher ist die automatische Wiedergabe standardmäßig nicht zulässig. Daher können wir diese Einstellungen mithilfe der Chrome-Flag-Einstellungen ändern. Dies ist im Normalfall nicht möglich, daher habe ich eine andere Lösung gefunden. das funktioniert perfekt ... (add pretoad = "auto")
quelle
Verbrachte zwei Stunden damit, alle oben genannten Lösungen auszuprobieren.
Das hat endlich bei mir funktioniert:
quelle
Auf Safari Iphone wenn buttrig ist niedrig und iphone ist auf Low - Power - Modus es automatisch wieder gewinnt `t, auch wenn Sie die folgenden Attribute haben: automatischen Wiedergabe, Loop, stumm geschaltet, playsinline Satz auf Ihrem Video HTML - Tag.
Ich habe festgestellt, dass das Arbeiten darin besteht, ein Benutzergestenereignis zu haben, um die Videowiedergabe auszulösen:
Weitere Informationen zu Benutzergesten und Video-Richtlinien für iOS finden Sie auf der Webkit-Website:
https://webkit.org/blog/6784/new-video-policies-for-ios/
quelle
Ich hatte einen Fall, in dem es etwas mit der Reihenfolge der verschiedenen Dateitypen zu tun hatte. Versuchen Sie es zu ändern und sehen Sie, ob das hilft.
quelle
Ich begann mit dem Abspielen aller sichtbaren Videos, aber alte Telefone zeigten keine gute Leistung. Im Moment spiele ich das Video ab, das der Mitte des Fensters am nächsten liegt, und pausiere den Rest. Vanilla JS. Sie können auswählen, welchen Algorithmus Sie bevorzugen.
quelle
Ich habe das gleiche Problem gelöst mit,
Sie müssen die Videos starten, nachdem die Seite angezeigt wurde.
quelle
Versuchen Sie tauschen in
autoPlay
fürautoplay
.Es scheint manchmal zwischen Groß- und Kleinschreibung zu unterscheiden. Sehr bizarr, weil es wie
autoplay
bei mir funktioniert hat, aber nur, wenn ich es mit einbezogcontrols
quelle