Использование iPodMusicPlayer без управления iPod в фоновом режиме - PullRequest
0 голосов
/ 07 апреля 2011

Я занимаюсь разработкой приложения, в котором особое внимание уделяется перемешиванию песен в выбранном списке воспроизведения. Когда приложение запускается, оно перечисляет все плейлисты пользователя, а затем, когда оно выбрано, загружается в мой музыкальный проигрыватель и запускается. Я использую MPMusicPlayerController iPodMusicPlayer, чтобы справиться с этим, потому что я довольно новичок в разработке для iOS, и он справляется с фоновым оформлением и всем приятным и легким для меня. Я хочу, чтобы музыка продолжала играть в фоновом режиме, и мне нравится, как все, что я изменяю в моем приложении, также отражается в приложении iPod. Однако я не хочу, чтобы пользователь мог что-то изменить в приложении iPod, а затем вернуться к моему. Поскольку мое приложение предназначено для перемешивания, пользователь может легко зайти в iPod и отключить перемешивание, а затем вернуться к своему приложению, и опыт будет разрушен. Я также не хочу, чтобы они меняли плейлист из iPod.

Может кто-нибудь помочь мне придумать способ сделать это? Воспроизведение / пауза / пропуск / предыдущая / громкость не является проблемой изнутри iPod (я хочу, чтобы это было возможно), но я не хочу, чтобы было возможно изменение очереди песен. Можно ли как-нибудь добавить в свое приложение обработчик, который будет ловить, изменил ли пользователь что-то, когда мое приложение находилось в фоновом режиме (и если да, остановить музыку и вернуть мое приложение на начальный экран)? Буду очень признателен за любые предложения. Я надеюсь, что что-то подобное возможно, прежде чем я решусь использовать AVPlayerQueue или подобное (в качестве примечания, можете ли вы воспроизводить DRM-файлы с помощью AVPlayerQueue?).

1 Ответ

0 голосов
/ 16 июня 2011

Что бы я сделал, это установил бы bool, когда фоновый:1005 *

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if ([prefs boolForKey:@"BACKGROUNDED"]) {
    [prefs setBool:NO forKey:@"BACKGROUNDED"];
    exit(0);
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...