应用程序在后台时启动AVAudioPlayer

时间:2012-01-01 17:42:59

标签: ios audio background avaudioplayer playback

我的应用程序App plays audio配置了App provides Voice over IP services.plist个选项。

应用程序正在接收套接字事件(即使在后台)并且关于事件,播放声音。当应用程序在前台时,一切正常。当应用程序处于后台时,触发应用程序,调用播放器的播放方法,但没有声音。

我尝试过很多来自互联网的示例代码,但没有任何工作。我试图在前台播放声音,然后在后台移动我的应用程序,它正在运行。

当应用在后台时开始播放声音有什么问题?

这是在我的应用程序在后台触发时处理事件的代码:

NSError *error;
NSURL *audioFileLocationURL = [[NSBundle mainBundle] URLForResource:@"HeadspinLong" withExtension:@"caf"];
if (audioPlayer != nil) return;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileLocationURL error:&error];
audioPlayer.delegate=self;
if (error) {
    NSLog(@"%@", [error localizedDescription]);
}
audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive: YES error: &error];
audioSession.delegate=self;
if (error) {
    NSLog(@"");
}

2 个答案:

答案 0 :(得分:0)

似乎是一个显而易见的问题,但您实际上是在实际应用程序中的play对象上调用audioPlayer方法吗?可能在后台事件处理程序的末尾?

即。 [audioPlayer play];

答案 1 :(得分:0)

根据我的理解,当应用程序处于后台时,似乎无法开始播放音乐...只能继续在后台播放现有的播放音乐