我正在研究一个iPhone iOS4应用程序,该应用程序包含从用户的iPod库播放音乐。我也想跟踪已播放的歌曲,并且能够随机更改歌曲,即使在背景中也是如此。所以我设置使用音乐播放器:iPhone应用程序使用MPMusicPlayer背景
[self setMusicPlayer: [MPMusicPlayerController iPodMusicPlayer]];
现在,我想这个应用程序继续运行,并在后台播放音乐,所以我已经设置:
Required background modes: App plays audio
我有问题是当我的应用程序移动到后台时(当applicationDidEnterBackground被调用时,即在应用程序开关上),我的应用程序失去了控制权。由于我使用的是iPodMusicPlayer,因此音乐会继续播放,但我的应用程序无法控制,因此无法跟踪或更改歌曲。
现在,苹果文档指出,您的应用程序应该继续使用这个所需的背景模式标签在后台执行,但我的不是。是因为我在使用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];
}