好的,所以我的应用程序播放视频,我希望声音继续在后台播放。但是当我点击“主页”按钮时,播放停止。我正在使用 iOS 5.0.1 在 iPhone 4s 上进行测试
什么在起作用?
- 如果视频正在播放并且我锁定屏幕,它会继续播放,
- I 可以从锁屏控件控制播放:下一个、上一个、播放、暂停。
- 如果我按“主页”,然后从多任务栏中转到“遥控器”,它就可以了。
怎么了?
- 当我按下“主页”按钮时,我希望应用程序继续播放,因为当我这样做时,音频会停止。
我做了什么:
- 在我的 app.plist 中将“音频”添加到“必需的背景模式”中
在应用代理的应用程序中添加了以下代码:didFinishLaunchingWithOptions:
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
在我的视图控制器中,我实现了接收远程控制的方法:
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
//End recieving events
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {
if (receivedEvent.type == UIEventTypeRemoteControl) {
switch (receivedEvent.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
[self play:nil];
break;
case UIEventSubtypeRemoteControlPreviousTrack:
[self actionPlaybackPreviousItem];
break;
case UIEventSubtypeRemoteControlNextTrack:
[self actionPlaybackNextItem];
break;
default:
break;
}
}
}
为什么一切正常,但是,这个?