Fahren Sie mit der Wiedergabe von html5 player im iOS-Hintergrundmodus fort

8

Wir haben unsere Musik-orientierte App in HTML5 und Javascript mit Sencha Touch erstellt. Für die Verteilung haben wir es in xcode mit UIwebView eingepackt. Alles läuft gut außer einer Sache, die nicht funktioniert: Audio-Wiedergabe im Multitask-Modus.

Ich kenne die allgemeine Idee: füge die UIBackgroundModes in info.plist hinzu.

Fertig. Jetzt können wir das Audio auch im Hintergrundmodus abspielen.

Bis wir das Ende des Liedes erreichen. Um den nächsten Song zu starten, müssen wir die App wieder in den Vordergrund bringen oder wir können die Wiedergabe- oder "Nächster Song" -Taste auf dem iPhone Audio Controller drücken.

Nach einigen Nachforschungen fand ich eine vielversprechende Problemumgehung bei: " Eingeben von Hintergrund auf iOS4, um Audio abzuspielen "wo die Problemumgehung ist, AVAudioSessionCategoryPlayback zu bearbeiten und mit dem UIBackgroundTaskIdentifier zu arbeiten. Das Problem für mich ist (wie bei jeder anderen Lösung, die ich bisher gefunden habe), dass diese Lösungen immer davon ausgehen, dass der Ton entweder mit AVaudioPlayer oder MPMusicPlayerController abgespielt wird. Aber in meinem Fall benutze ich weder, noch wird unser Audio von unserem html5 Player in UIwebView abgespielt.

Hat jemand Tipps, wie Sie den Ton im iOS-Multitasking-Modus weiter abspielen können, wenn der Audioplayer ein HTML5 / JavaScript-Player ist?

    
TanjuNYC 09.01.2012, 02:08
quelle

3 Antworten

1

Danke, Leute, aber ich habe die App einfach im Hintergrund im Hintergrund gehalten. Dies war genug, um die Zeit zu überbrücken, als die Verbindung zum nächsten Song der Playlist hergestellt wurde. Der Code, den ich verwendet habe, ist ähnlich wie dieser: iPhone - Hintergründe für Ereignisse

    
TanjuNYC 02.02.2012, 21:58
quelle
4

Meine App spielt Audio über ein <audio> -Tag in html, das in UIWebView gehostet wird, und unterstützt das Abspielen im Hintergrund.

Wie Sie vorschlagen, müssen Sie den Hintergrundmodus "App play audio" in Ihrem plist definiert haben.

Fügen Sie dies Ihrem applicationDidFinishLaunching: -Handler hinzu:

%Vor%     
TomSwift 25.01.2012 18:58
quelle
0

Sie könnten dies ausprobieren und eine Funktion für das Ereignis onend hinzufügen.

    
RaphaelDDL 25.01.2012 20:07
quelle