我正在研究一個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];
}