wake-up-neo.com

Wie kann ich Medien in iOS> = 4.2.1 Mobile Safari automatisch abspielen?

Ich kann keine Audio-Medien in Mobile Safari unter iOS 4.2.1 in einer anderen Situation als dem Handler eines vom Benutzer ausgeführten Klick-Ereignisses wiedergeben. Selbst dann, wenn player.play() asynchron aufgerufen wird (ajax, setTimeout usw.), funktioniert es nicht.

Ich habe versucht, player.load() vor player.play() anzurufen. Ich habe versucht, ein Klickereignis für ein dom-Element auszulösen, dessen Handler player.play() aufruft. Ich habe versucht, sowohl Audio- als auch Video-Tags zu verwenden.

Alle Lücken, die vor iOS 4.2.1 funktionierten, scheinen geschlossen zu sein. Irgendwelche Ideen?

23
David Gouldin

Ab iOS 4.2.x wird der Download von Medien nicht gestartet, wenn kein Benutzereingabeereignis wie Touchstart vorliegt.

Die Antwort ist also nein . Es gibt keine Methode, Medien automatisch über JavaScript oder etwas anderes wiederzugeben.

16
Yu Jianrong

Es gibt eine Möglichkeit, die Video-/Audiodatei auf 4.2.1 automatisch abzuspielen. Erstellen Sie einen Iframe, legen Sie als Quelle die URL der Mediendatei fest und hängen Sie den Iframe an den Hauptteil an. Es wird automatisch abgespielt.

var ifr=document.createElement("iframe");
ifr.setAttribute('src', "http://mysite.com/myvideo.mp4");
ifr.setAttribute('width', '1px');
ifr.setAttribute('height', '1px');
ifr.setAttribute('scrolling', 'no');
ifr.style.border="0px";
document.body.appendChild(ifr);

13
bhups

Wie andere hier bereits gesagt haben und laut Apple-Dokumentation, unterstützt MobileSafari das Autoplay-Attribut im Video-Tag NICHT. In iOS 6 funktioniert es jedoch. Dies scheint ein Fehler zu sein, den Apple in iOS 6.0.1 (und vermutlich auch in iOS 6.1) behoben hat.

Verlassen Sie sich nicht auf die automatische Wiedergabe in iOS 6, wenn Sie zufällig auf iOS 6.0 gestoßen sind.

-Michael

6

Als Problemumgehung versuchte ich, den load ()/play () - Code an ein Klickereignis zu binden und das Klickereignis dann programmgesteuert auszulösen. Dieser Ansatz funktioniert in Desktop Safari, nicht jedoch in Mobile Safari.

4
mshafrir

Wie wäre es damit?

Erstellen Sie ein Audio-Sprite mit Sound Manager 2, laden Sie es bei der ersten Benutzerinteraktion vorab und zwischenspeichern Sie es und spielen Sie es dann nach Bedarf ab. 

Funktioniert das?

1
mousedown

Das funktionierte auf dem iPad bis zum letzten Update 4.2:

$(function() {
    var Beep = document.createElement('audio');
    Beep.setAttribute('src', 'beep-23.mp3');
    Beep.load();
    Beep.play();
}

Mein Beep.play(); funktioniert immer noch für ein Klickereignis, aber das anfängliche Beep.play() funktioniert nicht mehr ...

1
steve

Autoplay wird (in meinen Tests) mit einem iPhone 5 (iOS 6) über die Kopfhörerbuchse unterstützt. 

0

Auf meinem iPad der dritten Generation, auf dem IOS 6 ausgeführt wird, funktioniert die automatische Wiedergabe von HTML5-Tags plötzlich! (Ich habe IOS 6 für ein paar Wochen installiert, und ich bin mir ziemlich sicher, dass ich diese Funktion sofort getestet habe, aber nur bemerkt habe, dass sie heute Nacht funktioniert.) Ich erinnere mich nicht, dass ich irgendetwas davon gehört habe Apple, obwohl ich gesehen habe, dass Mobile Safari die Möglichkeit hatte, Datei-Uploads über zu unterstützen 

<form><input type="file" .../></form>

- ein weiteres Feature, das ich brauchte, aber von Apple zurückgehalten wurde.

0
dkurland