Я работаю над приложением iPhone iOS4, которое включает воспроизведение музыки из библиотеки iPod пользователя. Я также хочу отслеживать, какие песни были сыграны, и быть в состоянии изменить песню случайно, даже в фоновом режиме. Поэтому я музыкальный плеер с помощью:iPhone App, связанный с MPMusicPlayer
[self setMusicPlayer: [MPMusicPlayerController iPodMusicPlayer]];
Теперь я хочу, это приложение, чтобы продолжать работать и играть музыку в фоновом режиме, поэтому я поставил:
Required background modes: App plays audio
Проблема у меня заключается в том, что мое приложение теряет контроль, когда оно перемещается в фоновый режим (когда вызывается applicationDidEnterBackground, то есть на переключателях приложения). Поскольку я использую iPodMusicPlayer, музыка продолжает воспроизводиться, но мое приложение не имеет контроля и поэтому не может отслеживать или изменять песню.
Теперь в документации Apple указано, что ваше приложение должно продолжать выполняться в фоновом режиме, используя этот требуемый тег режима фона, но мой нет. Это потому, что я использую MPMusicPlayer? Есть ли способ обойти это? Есть идеи?
PS. Я также пытаюсь заставить удаленные блокированные и многозадачные контроллеры iPod работать с моим приложением. Я использую код ниже, но remoteControlReceivedWithEvent никогда не вызывается! Работает ли он с MPMusicPlayer? Я видел это только с помощью AVAudioPlayer.
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
NSLog(@"remoteControlReceivedWithEvent");
switch (event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
NSLog(@"Play Pause");
break;
case UIEventSubtypeRemoteControlNextTrack:
NSLog(@"Next");
break;
default:
break;
}
}
- (BOOL)canBecomeFirstResponder {
NSLog(@"canBecomeFirstResponder");
return YES;
}
- (void) viewWillAppear:(BOOL)animated{
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}