我正在做一个播放歌曲的示例应用程序,即使应用程序进入后台,该歌曲仍然会播放。
在iOS 5 xcode模拟器中,当应用程序进入后台时它仍然播放该歌曲,但是当我在iOS 5.0.1 iPad2设备上运行时,app会在播放到后台时停止播放声音。 以下是播放歌曲和执行后台任务的代码。你在iOS 5.0.1中遇到过这种问题吗?或者我在代码中遗漏了什么?但我想知道它是如何在模拟器中工作的?
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url=[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"01-Track" ofType:@"mp3"]];
NSError *error;
audioPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
if(error)
{
NSLog(@"Error in audio palyer: %@", [error localizedDescription]);
}
else
{
audioPlayer.delegate =self;
[audioPlayer prepareToPlay];
trackControl.maximumValue=[audioPlayer duration];
trackControl.value=0.0;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
}
}
-(IBAction)playAudio:(id)sender
{
UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;
if([audioPlayer play]){
newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
}
谢谢!
答案 0 :(得分:2)
要让音频继续在后台工作,您应该添加一个名为必需背景的键 info.plist中的模式,其值为应用播放音频。但除非绝对必要,否则苹果不会大力推广它。