Ich habe ein seltsames Problem. Ich versuche eine Website mit einem geloopten Hintergrundvideo zu erstellen. Der Code sieht folgendermaßen aus:
<video src="video/bg.mp4" style="z-index: -1;object-fit: cover;" poster="video/bg.jpg" autobuffer autoplay loop muted></video>
Dies funktioniert in den meisten Browsern einwandfrei (IE hat Probleme mit dieser Objektanpassung, aber es macht mir nichts aus), aber auf dem iPhone wird das Video nicht automatisch wiedergegeben, auf dem iPad jedoch. Ich habe bereits die neuen Richtlinien für iOS gelesen und denke, dass ich die Anforderungen erfülle (andernfalls wird das iPad nicht automatisch wiedergegeben). Ich habe einige andere Tests durchgeführt:
- Das Entfernen überlagernder Divs behebt das Problem nicht
- Durch Entfernen des Z-Index wird dies nicht behoben
- Wifi oder Cellular machen keinen Unterschied
- Die Größe von Videodateien macht auch keinen Unterschied
Mache ich es falsch oder spielt das iPhone Videos einfach nicht automatisch ab und erfordert immer Interaktion? Ich interessiere mich nur für iOS 10, ich weiß, dass die Anforderungen für iOS 9 unterschiedlich waren
Antworten:
Hilft
playsinline
Attribut?Folgendes habe ich:
<video autoplay loop muted playsinline class="video-background "> <source src="videos/intro-video3.mp4" type="video/mp4"> </video>
Siehe den Kommentar
playsinline
hier: https://webkit.org/blog/6784/new-video-policies-for-ios/quelle
playsinline
arbeitete für mich in Verbindung mitmuted
der Berücksichtigung der Low-Power-Modus Eigenart auf dem iPhoneplaysinline
Den Tag gerettet !!!! Danke, Mann. Übrigens verlangen neue Browserrichtlinien, dass ein Video, wenn Sie es automatisch starten möchten, stummgeschaltet gestartet wird, da dies sonst nicht möglich ist. +1 bis @ken Beispiel für Chrome: [ developer.google.com/web/updates/2017/09/…playsinline
in camelCase geschrieben werden muss :playsInline
. Sonst funktioniert es nicht.iOs 10+ ermöglichen die automatische Inline-Wiedergabe von Videos. Sie müssen jedoch den "Energiesparmodus" auf Ihrem iPhone deaktivieren.
quelle
Hier ist der kleine Hack, um all die Probleme zu überwinden, die Sie bei der automatischen Wiedergabe von Videos auf einer Website haben:
Hinweis: Einige Browser lassen die automatische Wiedergabe von Videos nur zu, wenn der Benutzer mit dem Gerät interagiert.
Skripte, mit denen überprüft werden kann, ob Videos abgespielt werden, lauten wie folgt:
Object.defineProperty(HTMLMediaElement.prototype, 'playing', { get: function () { return !!(this.currentTime > 0 && !this.paused && !this.ended && this.readyState > 2); }});
Und dann können Sie das Video einfach automatisch abspielen, indem Sie Ereignis-Listener an den Körper anhängen:
$('body').on('click touchstart', function () { const videoElement = document.getElementById('home_video'); if (videoElement.playing) { // video is already playing so do nothing } else { // video is not playing // so play video now videoElement.play(); } });
Hinweis: Das
autoplay
Attribut ist sehr einfach und muss dem Video-Tag bereits hinzugefügt werden, außer diesen Skripten.Sie können das Arbeitsbeispiel mit Code hier unter diesem Link sehen:
So spielen Sie Videos automatisch ab, wenn sich das Gerät im Energiesparmodus / Datenspeichermodus / Safari-Browser befindet
quelle