Как включить элементы управления iPod в фоновом режиме для управления музыкой, отличной от iPod, в iOS 4? - PullRequest
22 голосов
/ 07 июля 2010

Хороший пример того, что я пытаюсь выполнить, реализован в последней версии приложения Spotify для iPhone (похоже, у Pandora та же функция).

Когда Spotifyв фоновом режиме двойное касание открывает «многозадачную док-станцию», где элементы управления ipod (воспроизведение / пауза, перемотка вперед и т. д.) позволяют управлять воспроизведением музыки в Spotify (не в приложении ipod).Кроме того, когда сенсорный экран iphone / ipod заблокирован, при двойном касании отображаются похожие элементы управления воспроизведением.

Если вы не знаете, что я имею в виду, вот статья с снимками экрана : http://www.wired.com/gadgetlab/2010/07/spotify-updated-for-ios4-ready-to-replace-ipod/

В моем текущем приложении музыка транслируется с сервера (используя AudioStreamer Мэтта Галлахера).Мне удалось сохранить музыку, играющую в фоновом режиме.Теперь я хотел бы связать свое воспроизведение с «многозадачным доком» / экраном блокировки.

Должен ли я использовать [MPMusicPlayerController iPodMusicPlayer]?Как мне действовать?

Бонусный вопрос: если вы можете сказать мне, как изменить значок ipod на значок моего приложения в «многозадачной док-станции» (Spotify также применил этот трюк ...), это должно быть УДИВИТЕЛЬНО.

Любая помощь приветствуется, спасибо.

Ответы [ 3 ]

31 голосов
/ 09 июля 2010

Проблема решена.

Короче говоря, чтобы включить событие дистанционного управления, 1) используйте:

- (void)remoteControlReceivedWithEvent:(UIEvent *)theEvent

и 2) установите это на ваш контроллер вида:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}
- (BOOL)canBecomeFirstResponder {
    return YES;
}

Я должен отдать должное Гранту.Он раздвоил AudioStreamer Мэтта Галлахера, позволив все улучшения ios4 (фоновый звук и работа пульта дистанционного управления).Вы можете найти его источники вместе с рабочим примером на github: http://github.com/DigitalDJ/AudioStreamer

Относительно значка: после использования beginReceivingRemoteControlEvents значок автоматически переключается на значок вашего приложения.Блестящий!

2 голосов
/ 07 мая 2011

Вот документация:

http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/RemoteControl/RemoteControl.html

Заметьте, однако, что это будет работать только тогда, когда у вас есть активный аудио сеанс в вашем приложении.

Я использую его с AVAudioSession с категорией AVAudioSessionCategoryPlayback и AVAudioPlayer, а «пульты дистанционного управления» работают только тогда, когда у меня AVAudioSession активен и AVAudioPlayer объект создан.

1 голос
/ 07 июля 2010

Элементы управления изменится для вашего приложения, если вы используете новые фоновые аудио API.Информацию можно найти здесь .В частности, разделы о фоновом аудио.

...