0

不是我在每个地方都搜索过的重复问题,但不幸的是我没有找到任何解决方案。

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

我有一个功能,我正在检查应用程序是否存在于后台,然后我写了播放音乐文件的语句,但[avaudioplayer play]总是返回 NO。我检查了错误代码,但它显示为空。

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

4

1 回答 1

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 播放音频”的项目。

那么它肯定会起作用:)

于 2013-01-25T20:53:44.643 回答