Подтвердить что ты не робот

Как включить элементы управления iPod в фоновом режиме для управления музыкой без iPod в iOS 4?

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

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

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

В моем текущем приложении музыка транслируется с сервера (используя Matt Gallagher AudioStreamer). Мне удалось сохранить музыку в фоновом режиме. Теперь я хотел бы связать свое воспроизведение с экраном "multi-task dock" /lock.

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

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

Любая благодарность, спасибо.

4b9b3361

Ответ 1

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

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

- (void)remoteControlReceivedWithEvent:(UIEvent *)theEvent

и 2), это ваш контроллер:

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

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

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

Ответ 2

Здесь документация:

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

Обратите внимание, что он будет работать только тогда, когда у вас активная аудио сессия в вашем приложении.

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

Ответ 3

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