Wie können Sie Musik von der iPod-App wiedergeben, während in Ihrer App weiterhin Fernbedienungsereignisse empfangen werden?

Ok, ich versuche, einem Benutzer die Auswahl von Musiktiteln aus seiner iPod-Mediathek zu ermöglichen, aber ich möchte weiterhin Benachrichtigungen über die Fernbedienung (Kopfhörer, Bildschirmsperre, usw.) in meiner App erhalten, damit ich einige zusätzliche Dinge tun kann . Bisher kann ich entweder iPod-Musik oder Kopfhörer-Events abspielen, aber nicht beide gleichzeitig.

Hier ist, was ich bisher weiß ...

Wenn Sie den MPMusicPlayer verwenden, können Sie problemlos programmgesteuert auf die gesamte Musikbibliothek zugreifen. Die Remote-Benachrichtigungen werden jedoch nicht von Ihrer App empfangen, unabhängig davon, ob Sie applicationMusicPlayer oder ipodMusicPlayer verwenden.

Wenn Sie AVAudioPlayer (den von Apple empfohlenen Player für die meisten Sounds in Ihrer App) verwenden, können Sie problemlos Benachrichtigungen per Fernzugriff erhalten, haben jedoch keinen nativen Zugriff auf die iPod-Bibliothek.

AVAudioPlayer kann mit einer Asset-URL initialisiert werden, und Tracks in der iPod-Bibliothek (Typ MPMediaItem) verfügen über eine URL-Eigenschaft, die eine NSURL-Instanz zurückgibt, die in der Dokumentation ausdrücklich für die Verwendung mit AVAsset-Objekten angegeben ist, wenn Sie jedoch versuchen, den AVAudioPlayer mit zu initialisieren dass NSURL, scheitert es. (Ich habe auf dem iPod den Titel "Wird abgespielt" verwendet, der als MP3-Datei vorliegt und ein gültiges NSURL-Objekt zurückgibt, aber die Initialisierung ist fehlgeschlagen. Schlimmer noch, als es sich um eine Audible.com-Datei handelt, hat die NSURL-Eigenschaft flat-out null zurückgegeben.)

Wenn Sie versuchen, mit einer Instanz des AVAudioPlayer Remote-Ereignisse abzurufen (z. B. mit einer leeren Audiodatei) und dann gleichzeitig die MPMusicPlayer-Klasse zum Abspielen von iPod-Musik zu verwenden, haben Sie Fernsteuerungszugriff, bis Sie die iPod-Wiedergabe zu diesem Zeitpunkt tatsächlich starten Verlieren Sie es, da Ihre Audiositzung deaktiviert und die System-Audiositzung aktiv wird.

Wenn Sie das Gleiche wie bei # 4 versuchen, aber stattdessen die Kategorie der Audiositzung auf eine mischbare Variante festlegen, wird Ihre Sitzung nicht deaktiviert, Sie verlieren jedoch die Fernsteuerungsfähigkeit, sobald der iPod abgespielt wird.

urz gesagt, wenn MPMusicPlayer abgespielt wird, kann ich scheinbar keine Remote-Ereignisse abrufen, und ich kenne keine andere Möglichkeit, Inhalte aus der iPod-Mediathek abzuspielen, als MPMusicPlayer zu verwende

IRGENDEI Vorschläge, wie man das umgehen kann, wären willkommen. Kreativ oder total verrückt. Ist mir egal, solange es funktioniert.

Jemand? Jemand? Bueller? Bueller?

M

Antworten auf die Frage(8)

Ihre Antwort auf die Frage