【问题标题】:AVAudioSession background mode problemAVAudioSession后台模式问题
【发布时间】:2011-10-20 09:37:36
【问题描述】:

我已将 AVAudioSession 设置为在后台播放音乐

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

NSError *setCategoryError = nil;
[audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
if (setCategoryError) {
}

NSError *activationError = nil;
[audioSession setActive:YES error:&activationError];
if (activationError) { 
}

还在我的 plist 文件中添加了“必需的背景模式”。

当我播放远程文件并且 iPhone 进入后台时,音频会继续播放,就像我怀疑的那样。但是,当我在我的应用程序(MPMediaItem URL)中播放 iPod 中的歌曲时,它不会继续在后台播放。

我错过了什么?

【问题讨论】:

    标签: iphone ios avaudiosession


    【解决方案1】:

    你没有错过任何东西。当用户开始从 iPod 播放音乐时,它会阻止您的应用继续播放任何音频。

    如果你的意思是别的,请留言,我会更新这个答案。

    编辑:您应该通过在MPMusicPlayerController 的相关实例上设置队列来启动iPod 音乐,然后向其发送-play 消息。如果您将 MPMediaItem 对象提供的 URL 与 AVAudioPlayer 实例或类似实例一起使用,它将以不同的方式路由,并且可能无法在后台继续播放。

    【讨论】:

    • 也许我不够清楚。我的应用程序也将远程文件作为本地 ipod 音乐播放(MPMediaItem URL)。当我从 ipod 开始播放歌曲时,它不会在后台播放。谢谢!
    • 好的,谢谢,这为我指明了正确的方向。但目前我正在使用 MPMoviePlayerController 轻松播放远程文件。允许用户将本地 iPod 音乐作为远程文件(可以从播放列表中选择)播放的最佳方式是什么?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多