AVAudioplayer不在后台播放

时间:2013-01-25 13:13:46

标签: iphone avaudioplayer

这是 NOT 重复的问题,我曾搜索过每一个地方,但遗憾的是我没有找到任何解决方案。

我的问题我想在应用程序处于后台时播放音乐文件,它应该在调用任何本地通知时开始播放。

我有一个功能,我正在检查app是否存在于后台,然后我写了声明播放音乐文件,但是 [avaudioplayer play] 总是返回NO而不是。我已检查错误代码,但显示为空。

我还编辑了info.plist文件,将音频文件设置设置为在后台播放。

1 个答案:

答案 0 :(得分:1)

设置音频会话像这样:( audioPlayer是AVPlayer的实例)

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"inside observer");
    if (self.audioPlayer.status == 1)
    {
        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
                                               error:nil];
        [[AVAudioSession sharedInstance] setActive:YES
                                             error:nil];
        [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
        [self.audioPlayer play];
    }
}

还有一件事要做的是在应用程序的appname-info.pist中添加一个字段,即“必需的背景模式”,并在这个名为“App播放音频”的数组中添加一个项目。

它肯定会起作用:)