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