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

Posted

技术标签:

【中文标题】iPhone OS 4 多任务处理 - 在后台播放音频【英文标题】:iPhone OS 4 Multitasking - Playing Audio In background 【发布时间】:2010-06-09 15:52:26 【问题描述】:

我正在尝试使用 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];

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

谢谢, 托尼

【问题讨论】:

你可能会发现,在涉及 ios4 的保密协议解除之前,人们不会想回答这个问题...... 是的,把它带到官方论坛。 重复问题:***.com/questions/3161635/… 【参考方案1】:

听起来您没有正确设置音频会话。来自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】:

嗨,

我认为这个视频可以帮助你解决你的问题...... 在 WWDC 视频中,他们清楚地解释了如何启用背景音频... http://developer.apple.com/videos/wwdc/2010/ 要查看或下载这些视频,您需要有一个苹果帐户... 并在其中看到 Session 109-Adopting multitasking on iPhone OS, Part2... 希望这对你有帮助..

~拉维拉贾

【讨论】:

以上是关于iPhone OS 4 多任务处理 - 在后台播放音频的主要内容,如果未能解决你的问题,请参考以下文章

iPhone中是不是启用了背景音频播放?

多任务处理后 AVAudioPlayer 继续播放

iOS 后台任务 Swift

quartz结合多线程处理后台业务

iPhone 4.0:没有在后台播放音频?

iphone sdk:是不是可以在 iOS 4 的后台播放音频播放列表