我正在尝试为我正在为iOS 4开发的应用程序设置背景音频.该应用程序没有专用的音乐播放器viewController,但不像其他背景音频应用程序,如Pandora,这使任务更多一点混乱.
我已Info.plist正确设置了适当的设置,并AVAudioPlayer在我的应用委托中有一个对象,可以从任何地方访问.当用户播放一首歌曲时,我用一首AVAudioPlayer用歌曲初始化的新歌曲替换它并播放它.这一切都很好,除了现在我不知道如何支持远程控制事件.
根据Apple的文档,我有这个:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
switch(event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
if([iPhoneAppDelegate backgroundAudioPlayer].playing)
[iPhoneAppDelegate pauseBackgroundAudioPlayer];
else
[iPhoneAppDelegate playBackgroundAudioPlayer];
break;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我在哪里放这个?Apple的文档似乎暗示这应该放在某个视图控制器的某个地方,但我的应用程序有很多视图控制器和导航控制器.无论我试图把它放在哪里,出于某种原因,在多任务托盘遥控器中点击切换播放/暂停按钮会导致歌曲暂停片刻然后取消暂停,或以某种方式使歌曲播放两次.