Я потратил на это два дня и ничего не добился. Я пытаюсь использовать [MPMusicPlayerController applicationMusicPlayer] для воспроизведения звука, выбранного из пользовательской библиотеки iPod, и запуска его в фоновом режиме, а также для поддержки удаленных событий. Теперь заставить музыку играть - самая простая часть. Получите экземпляр, выберите песни, назначьте музыкальную очередь и играйте. Готово и сделано. НО ... а) я не могу заставить его играть в фоновом режиме и б) даже когда на переднем плане я не могу заставить события удаленного управления работать вообще!
И прежде чем вы спросите, да, я установил записи plist, категорию аудиосессии, вызов, чтобы сказать, что я заинтересован в получении удаленных событий, и настроил службу быстрого реагирования для их прослушивания, поэтому, пожалуйста, знайте, да, я ' Я прочитал, прочитал каждый документ по теме, который мне удалось найти * (* в этой задаче я виню Apple за то, что она не совсем ясна по этой теме и не имеет для нее НИКАКОГО примера кода!), и я наблюдал за каждым из Видео WWDC, относящиеся к этому (даже замораживание экрана, чтобы скопировать код в точности из их примера ...), поэтому, если я не пропустил что-то не в этом списке, отвечать любым из этих ответов не будет помогать.
Еще одна вещь ... Я прямо говорю об использовании MPMusicPlayerController, который, согласно документации, никогда не использует сеанс приложения. Он всегда использует системный сеанс. (Возможно, это само по себе отвечает на мой вопрос, но в документации это четко не сказано, поэтому я не уверен, отсюда и этот вопрос.)
Тем не менее, через два дня мои мысли таковы:
При использовании MPMusicPlayerController, независимо от того, какие методы вы вызываете или какие записи в списке вы установили, ваше приложение никогда не будет работать в фоновом режиме. Период. Если вы используете экземпляр ipodMusicPlayer, музыка продолжает воспроизводиться, но это потому, что играет iPod, а не ваше приложение. Если вместо этого вы используете экземпляр applicationMusicPlayer, при переходе в фоновый режим ваша музыка останавливается. В обоих случаях ваше приложение приостановлено.
Независимо от того, используете ли вы экземпляры ipodMusicPlayer или applicationMusicPlayer, все удаленные события поступают в само приложение iPod, а не в ваше, даже если вы явно запросили их. Если вы используете экземпляр applicationMusicPlayer и используете пульт дистанционного управления для выбора «Play», приложение iPod получает команду, поэтому звук прерывается, и воспроизведение начинается в приложении iPod. Если вместо этого вы выбрали ipodMusicPlayer, то, конечно, это не имеет значения, поскольку вы явно заявили, что в основном заинтересованы в удаленном управлении приложением iPod, которое, опять же, является тем, что на самом деле получает удаленные события.
Значок в элементах управления с быстрым переключением внизу никогда не меняется на значок вашего приложения, потому что, опять же, ваше приложение никогда не настроено для приема событий. Приложение iPod есть, поэтому его значок там и появляется.
Так что я хочу знать ... я здесь не прав? Кто-нибудь успешно смог использовать MPMusicPlayerController и смог перехватить удаленные события? Хотя я бы предпочел использовать applicationMusicPlayer с поддержкой фоновой музыки, чтобы не гадить с iPod пользователя, важнее всего уведомления удаленного управления, то есть если мне придется использовать ipodMusicControl и держать мое приложение на переднем плане, чтобы перехватывать их. сообщения, пусть будет так. Это некрасиво, но хоть что-то.
Примеры кода или, по крайней мере, явные шаги по отношению к одному из встроенных шаблонов приложений были бы ОЧЕНЬ признательны. (Даже не нужно реализовывать ... только шаги. Надеюсь, это успокоит неизбежную вещь: «Это все еще под NDA», с которой люди продолжают отвечать на вопросы.)
отметка