MPMusicPlayerController перестает работать после синхронизации iTunes - PullRequest
3 голосов
/ 13 июля 2010

Я знаю, что есть похожий вопрос MPMusicPlayerController прекращает отправку уведомлений , но ответ на этот вопрос не решает эту проблему.

Я использую iOS 4, и это происходит как на устройствах с многозадачностью, так и на устройствах, не поддерживающих многозадачность. Я тестировал на iPhone 4, iPhone 3GS, iPod touch 2G и iPod touch 1G.

У меня есть проект только для тестирования этой проблемы. Он использует MPMusicPlayerController для управления воспроизведением музыки на iPod и получает уведомления об изменении элемента nowPlaying, поэтому он может обновить обложку, исполнителя и название. Работает нормально при первом запуске. Но если вы выполните синхронизацию iTunes, которая, по моему мнению, выйдет из iPod.app на устройстве и вернется в мое приложение, приложение больше не будет получать уведомления от MPMusicPlayerController, поэтому оно не обновляет экран «Текущий элемент воспроизведения».

Проект также позволяет вам выбрать список воспроизведения из вашей библиотеки iPod, чтобы начать воспроизведение. Также перестает работать после синхронизации. Он по-прежнему может получить список плейлистов, но попытка поставить их в очередь в музыкальном проигрывателе iPod ничего не дает.

Освобождение старого экземпляра MPMusicPlayerController не работает. Отмена регистрации и повторная регистрация для уведомлений не работает. Кажется, что проблема с IPC между приложением и iPod.app. Единственный способ исправить это - убить мое приложение и перезапустить его.

У кого-нибудь еще есть такая проблема?

Ответы [ 2 ]

2 голосов
/ 14 июля 2010

У меня точно такая же проблема, и я не смог исправить ее должным образом, хотя я нашел временное решение, которое лучше, чем оставить мое приложение застрявшим в непригодном для использования состоянии:вызовите exit(0) в моем обработчике для MPMediaLibraryDidChangeNotification, так что, по крайней мере, мои пользователи не будут застревать, не в состоянии сделать что-либо, задаваясь вопросом, как это исправить.

0 голосов
/ 13 июля 2010

Я бы попытался повторно установить категорию AVAudioSession на AVAudioSessionCategorySoloAmbient и повторно активировать сеанс.

...