Ich habe Hintergrund-Audio für meine App aktiviert (im plist). Die Wiedergabe des nächsten Titels nach dem Abschluss des aktuellen Vorgangs über SPPlaybackManager im Hintergrund (wenn das Telefon gesperrt / ausgeschaltet ist) funktioniert nicht.
Wenn der aktuelle Titel endet und der Ton stoppt, beginnt die App nicht, den nächsten Titel abzuspielen, bis das Telefon entsperrt wird und meine App wieder aktiv wird.
Wie behebe ich das? Hier ist ein Code-Schnipsel, den ich benutze, um mit der Wiedergabe des nächsten Titels zu beginnen. Ich beobachte, dass die aktuelle Spur Null wird, und beginne dann mit der Wiedergabe der nächsten Spur. Das Protokoll zeigt mir, dass die nächste aktuelle Spur im Playback-Manager-Objekt eingestellt wird, aber es ist still.
%Vor%Konsole:
%Vor%Die Lösung ist sehr einfach, aber ich habe ein Jahr gebraucht, um das zu realisieren. Meine alte Lösung war, eine Hintergrund-Aufgabe kurz vor dem Ende des vorherigen Titels zu starten und sie so lange laufen zu lassen, bis der nächste Titel abgespielt wurde. Das war sehr fehleranfällig. Stattdessen:
Behalten Sie Ihren Wiedergabestatus im Auge (Wiedergabe oder Pause). Wann immer Sie zum Spielen übergehen, starten Sie eine Hintergrundaufgabe. Stoppen Sie es nie, es sei denn, Sie wechseln in Paused. Behalte den Status als Wiedergabe zwischen den Tracks. Solange Sie den Audio-Hintergrundmodus in Ihrer Datei "info.plist" haben und Audio abgespielt wird, hat Ihre Hintergrund-Aufgabe eine unendliche Zeitüberschreitung.
Irgendein Pseudocode:
%Vor%Edit: Oh, und ich endlich darüber gebloggt .
CocoaLibSpotify macht viel Arbeit, um mit dem Abspielen eines Tracks zu beginnen und wird wahrscheinlich neue interne Threads erzeugen. Ich bezweifle, dass dies im Audio-Stil des Hintergrunds erlaubt ist, so dass Sie wahrscheinlich eine temporäre Hintergrundaufgabe starten müssen, um Spuren zu ändern.
Tags und Links spotify cocoalibspotify-2.0