CloudStorageTools :: serve () Audio wird nicht auf iOS wiedergegeben

8

Ich verwende GoogleCloudStorage::serve() , um .mp3 -Dateien über eine Website auf Google App Engine mit einem HTML5 audio -Tag zu liefern. Alles funktionierte einwandfrei, aber nach einem Update für iOS konnten diese Geräte das Audio in keinem Browser abspielen.

Ich bin nicht sicher, warum der Code nicht mehr funktioniert. Alles andere funktioniert immer noch auf Android und Windows in allen Browsern.

Es wird überhaupt nicht auf Javascript oder automatisches Abspielen weitergeleitet. Es ist nur ein einfaches Audio-Tag mit der Quelle, die von GoogleCloudStorage::serve() bereitgestellt wird und die überall funktioniert, außer kürzlich auf iOS.

Jede Eingabe wäre willkommen.

    
Guy 15.01.2017, 10:07
quelle

2 Antworten

1

Dies ist eine Aufnahme im Dunkeln, weil ich nichts über die Ausgabe von Audiodateien auf iOS weiß, aber falls es hilft ...

Ungefähr zur gleichen Zeit, als Sie diese Frage gepostet haben, hat mich ein Freund gebeten, ihm bei seiner Website zu helfen. Die Website hat zuvor Audio abgespielt, aber ungefähr zum Zeitpunkt der Frage funktionierte das Audio unter Safari auf OS X nicht mehr.

Der vorhandene Audioplayer, der verwendet wurde, war Flash-basiert. Ich wechselte seine Website zum Abspielen von Audio mit HTML5 und dann hat es funktioniert.

Sie sollten also überprüfen, ob Sie Audio in iOS mit einem Flash-Player wiedergeben und wenn möglich in HTML5 ändern.

    
Jeff O'Neill 22.02.2017 19:24
quelle
1

Verlass dich auf automatische Wiedergabe ? iOS deaktiviert die automatische Wiedergabe, Sie müssen wirklich Lassen Sie den Benutzer eine Schaltfläche oder etwas berühren.

Zitat von Apples Dokumentation :

  

In Safari unter iOS (für alle Geräte, einschließlich iPad), wo der Benutzer darf   in einem Mobilfunknetz sein und pro Dateneinheit geladen werden, preload und   Autoplay sind deaktiviert. Es werden keine Daten geladen, bis der Benutzer sie einleitet.   Dies bedeutet, dass die Methoden JavaScript play() und load() ebenfalls inaktiv sind   bis der Benutzer die Wiedergabe einleitet, außer die play() oder load() Methode   wird durch Benutzeraktion ausgelöst. Mit anderen Worten, eine benutzerinitiierte Wiedergabe   Schaltfläche funktioniert, aber ein onLoad="play()" -Ereignis nicht.

     

Dies spielt den Film: <input type="button" value="Play" onclick="document.myMovie.play()">

     

Das tut nichts auf iOS : <body onload="document.myMovie.play()">

    
sheyll 26.02.2017 23:12
quelle