2010-06-09 46 views
11

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

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"someday" ofType:@"mp3"]]; 
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
[audioPlayer play]; 

`。一旦我点击应用中的按钮,音频开始播放。但是,当我关闭应用程序停止。我怎样才能让它在后台播放?

感谢, 托尼

+3

你可能会发现人们不会想要回答这个问题,直到涵盖iOS4的NDA被解除... – 2010-06-09 15:55:13

+0

是的,把它带到官方论坛。 – 2010-06-09 16:08:30

+2

重复的问题:http://stackoverflow.com/questions/3161635/entering-background-on-ios4-to-play-audio – 2010-07-06 10:45:07

回答

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]; 

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

2

HI,

我觉得这个视频可以帮助ü解决问题乌尔... 在WWDC的视频,他们已清楚解释如何ü可以使回地面音频... http://developer.apple.com/videos/wwdc/2010/ 查看或下载这些视频u需要有一个苹果账号... 并在这届见109采用多任务的iPhone OS,第2部分... 希望这将帮助ü..

〜Raviraja