iPhone OS 4多任务处理 - 在后台播放音频

Ton*_*ony 11 iphone

我正在尝试使用iPhone OS 4.0的多任务处理功能.我试图在后台播放音频而没有运气.我在info.plist中添加了UIBackgroundModes属性,并提到需要在后台播放音频.我还添加了播放音频的代码.`

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"someday" ofType:@"mp3"]]; 
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[audioPlayer play];
Run Code Online (Sandbox Code Playgroud)

`.单击应用程序中的按钮后,音频开始播放.但是,当我关闭应用程序时,它会停止.如何让它在后台播放?

谢谢,托尼

Den*_*sie 12

听起来你没有正确设置音频会话.来自http://developer.apple.com/iphone/library/documentation/AudioVideo/Conceptual/MultimediaPG/UsingAudio/UsingAudio.html:

例如,使用默认音频会话时,当自动锁定时间超时且屏幕锁定时,应用程序中的音频将停止.如果要确保在屏幕锁定的情况下继续播放,请在应用程序的初始化代码中包含以下行:

NSError *setCategoryErr = nil;
NSError *activationErr  = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
Run Code Online (Sandbox Code Playgroud)

AVAudioSessionCategoryPlayback类别可确保在屏幕锁定时继续播放.激活音频会话会使指定的类别生效.