我正在试用AVFoundationFramework
。
目前我可以在前台运行AVAudioPlayer
。
当应用程序转到后台时,AVAudioPlayer
无法继续播放。
具体实施步骤如下:
将后台任务添加到.plist
设置AVAudioPlayer
self.objAVAudioPlayer = [[AVAudioPlayer alloc]initWithData:mp3Data error:&error];
self.objAVAudioPlayer.delegate = self;
设置AVAudioSession
if([self.objAVAudioPlayer prepareToPlay])
{
AVAudioSession *objAVAudioSession = [AVAudioSession sharedInstance];
[objAVAudioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
[objAVAudioSession setActive:YES
error:nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self.objAVAudioPlayer play];
}
当应用程序恢复时,它会从它辞职的完全相同的地方开始。
基础SDK为iOS 7.0
。
知道我错过了什么吗?任何帮助将不胜感激。
答案 0 :(得分:1)
要在后台模式下播放音频,您应设置AVAudioSession
并添加此代码
UIBackgroundTaskIdentifier backgroundTask = [application beginBackgroundTaskWithExpirationHandler:^{
[application endBackgroundTask:backgroundTask]; //Tell the system that we are done with the tasks
backgroundTask = UIBackgroundTaskInvalid; //Set the task to be invalid
}];
进入方法
中的AppDelegate.m
课程
- (void)applicationDidEnterBackground:(UIApplication *)application {
//Some code
}