【发布时间】:2018-12-31 20:11:02
【问题描述】:
使用 AudioQueueServices 播放流式 MP3 文件,当应用切换到后台时播放器停止。
我有:
- 在“Capabilities”项目设置页面的“Background Modes”面板中,我开启了“Audio, AirPlay and Picture in Picture”和“Background fetch”
在“信息”页面的“自定义 iOS 目标属性”下,添加了“必需的背景模式”节点,其中包含“应用程序使用 AirPlay 播放音频或流式传输音频/视频”和“应用程序从网络”
-
在播放器模块的初始化代码中,我包含以下调用:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &error];在没有错误信号的情况下完成。
根据我的日志,一旦应用切换到后台,我就停止接收任何回调,因此播放几乎立即停止。我需要做什么才能让它继续?
【问题讨论】:
-
您是否尝试播放捆绑包中的音频是否有效?
-
尝试设置
AVAudioSessionCategoryPlayAndRecord -
@PrashantTukadiya - 我没有尝试从捆绑包中播放,但根本看不出这会有什么不同 - 系统不知道音频数据来自哪里,因为我将它加载到内存中,然后通过缓冲区播放;从我自己的内部缓冲区重新填充音频队列缓冲区的回调永远不会被调用。更改类别没有效果。
-
更改类别没有任何效果......除了在手机上使用时导致播放通过接收器而不是扬声器(但在模拟器上没有变化)。
标签: ios audioqueueservices ios-background-mode