Фоновая Регулировка звука и Дистанционное использование Поддержки MPMusicPlayerController на iOS 4. Это даже возможно?

Я провел два дня на это и нигде не добрался. Я пытаюсь использовать [MPMusicPlayerController applicationMusicPlayer], чтобы играть аудио, выбранное из библиотеки iPod пользователя и иметь выполненный в фоновом режиме, а также поддерживать удаленные события. Теперь получение музыки, на самом деле играя является легкой частью. Получите экземпляр, выберите песни, присвойте музыкальную очередь и игру. Сделанный и сделанный. НО... a) я не могу заставить это играть в фоновом режиме и b) даже когда на переднем плане я не могу заставить события дистанционного управления работать вообще!

И перед выяснением да, я установил plist записи, аудио категорию сессии, вызов, чтобы сказать, что я интересуюсь получением удаленных событий и настраиваю первого респондента, который прислушается к ним, поэтому знайте, да, я читал, читает каждый документ о предмете, который я мог найти* (*a задача, в которой я обвиняю Apple для того, чтобы не быть ясным вообще по этой теме, ни иметь ЛЮБОЙ пример кода для него!) и я посмотрел каждые из видео WWDC, касающихся его (даже замораживание экрана для копирования кода точно с их примера...) поэтому, если я не отсутствовал, что-то не в этом списке, отвечающем с любым из тех ответов, не собирается помогать.

Еще одна вещь... Я явно говорю об использовании MPMusicPlayerController, который согласно документам, никогда не использует сессию приложения. Это всегда использует системную сессию. (Возможно, который сам по себе отвечает на мой вопрос, но в документах ясно не говорится это, таким образом, я не уверен, следовательно этот вопрос.)

Тем не менее после двух дней, мои мысли - это:

  1. При использовании MPMusicPlayerController, независимо от того, какие методы Вы называете или какие plist записи Вы устанавливаете, Ваше приложение никогда не будет работать в фоновом режиме. Период. При использовании ipodMusicPlayer экземпляра музыка продолжает играть, но поэтому это - iPod, который это играет, не приложение. Если Вы используете applicationMusicPlayer экземпляр вместо этого, при движении в фон музыкальных остановок. В обоих случаях Ваше приложение приостановлено.

  2. Независимо от Вашего использования ipodMusicPlayer или applicationMusicPlayer экземпляров, все удаленные события переходят к самому приложению iPod, не Вашему, даже если Вы явно попросили их. Если Вы используете applicationMusicPlayer экземпляр, и Вы используете удаленное для выбора 'Игры', приложение для iPod получает команду, таким образом, аудио скрывается и прервано, и воспроизведение начинается в приложении для iPod. Если Вы выбрали ipodMusicPlayer вместо этого, то, конечно, он не имеет значения, поскольку Вы явно сказали, что в основном просто интересуетесь удаленным управлением приложением для iPod, которое снова, то, что на самом деле получает удаленные события.

  3. Значок в средствах управления быстрого переключателя внизу никогда не изменяется на значок Вашего приложения, потому что снова, Ваше приложение на самом деле никогда не настраивается для получения событий. Приложение iPod, который является, почему его значок действительно появляется там.

Таким образом, то, что я хочу знать... я неправильно здесь? Кто-либо успешно смог использовать MPMusicPlayerController и смог прервать удаленные события? В то время как я предпочел бы использовать applicationMusicPlayer с поддержкой фоновой музыки, таким образом, я не унавоживаю с iPod пользователя, большей вещью являются уведомления дистанционного управления, означая, должен ли я использовать ipodMusicControl и сохранить мое приложение на переднем плане для прерывания тех сообщений, пусть будет так. Это ужасно тот путь, но по крайней мере это - что-то.

Примеры кода, или по крайней мере явные шаги против одного из встроенных шаблонов приложений ЗНАЧИТЕЛЬНО ценились бы. (Даже не нужна реализация... просто шаги. Надо надеяться, это успокоит неизбежность, 'Она все еще находится под NDA' вещь, с которой люди продолжают отвечать на вопросы.)

Mark

8
задан MarqueIV 4 July 2010 в 19:43
поделиться

2 ответа

Я решил. Эта информация содержится в моем другом вопросе здесь ...

Переполнение стека: Воспроизведение музыки с iPod при получении событий дистанционного управления

... но, вкратце, вы должны использовать AVPlayer (но не AVAudioPlayer. Понятия не имею, почему то есть!) с URL-адресом ресурса из MPMediaItem, который вы получили из библиотеки, затем установите категорию аудиосессии на Playable (НЕ включайте смешивание!) и добавьте соответствующие ключи в файл info.plist, сообщая ОС, что ваше приложение хочет поддержка фонового звука.

Это позволяет воспроизводить объекты из библиотеки iPod (по какой-то причине, кроме файлов Audible.com!) И при этом получать удаленные события. Конечно, вам нужно проделать больше работы, и поскольку это ваш аудиоплеер, который отделен от приложения iPod, и он будет прерывать работу приложения iPod (что может быть, а может и не быть желательным. И снова, не включайте микширование, иначе приложение iPod захватит события дистанционного управления) но это перерывы!

8
ответ дан 5 December 2019 в 17:33
поделиться

Для всех, кто хочет знать, я обнаружил, что для воспроизведения звука в фоновом режиме вы должны установить категорию аудиосессии на Playable а затем фоновый звук работает нормально. Если вы также хотите одновременно воспроизводить свои собственные звуки, вы должны отметить категорию как смешиваемую. Это решило часть фоновой музыки. Но я обнаружил, что каждый раз, когда iPod играет, вам не представляется возможным получать удаленные уведомления.

Вот обновленная ветка ...

Как можно воспроизводить музыку из приложения iPod, продолжая получать события дистанционного управления в своем приложении?

M

2
ответ дан 5 December 2019 в 17:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: