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


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

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

谢谢, 托尼


4316
2018-06-09 15:52


起源

您可能会发现,在覆盖iOS4的NDA解除之前,人们不会想回答这个问题... - Stephen Darlington
是的,把它带到官方论坛。 - Tom Irving
重复的问题: stackoverflow.com/questions/3161635/... - pm_labs


答案:


听起来你没有正确设置音频会话。从 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类别可确保在屏幕锁定时继续播放。 激活音频会话会使指定的类别生效。


12
2017-07-22 14:53





HI,

我认为这个视频可以帮助你解决你的问题...... 在WWDC视频中,他们已经清楚地解释了如何启用背景音频...... http://developer.apple.com/videos/wwdc/2010/ 要查看或下载这些视频,您需要拥有一个苹果帐户... 在那里看到会议109-在iPhone OS上采用多任务处理,Part2 ...... 希望这会对你有所帮助..

〜Raviraja


2
2017-07-08 12:25