Ios AudioQueueServices后台播放不工作

Ios AudioQueueServices后台播放不工作,ios,audioqueueservices,ios-background-mode,Ios,Audioqueueservices,Ios Background Mode,使用AudioQueueServices播放流式MP3文件,当应用程序切换到后台时,播放器会停止播放 我有: 在“功能”项目设置页面的“背景模式”面板上,我打开了“音频、播放和画中画”和“背景提取” 在“信息”页面的“自定义iOS目标属性”下,添加了一个“必需的后台模式”节点,其中包含“应用程序使用AirPlay播放音频或流式音频/视频”和“应用程序从网络下载内容”的条目 在播放器模块的初始化代码中,我包括以下调用: [[AVAudioSession sharedInstance]设置类别:A

使用AudioQueueServices播放流式MP3文件,当应用程序切换到后台时,播放器会停止播放

我有:

  • 在“功能”项目设置页面的“背景模式”面板上,我打开了“音频、播放和画中画”和“背景提取”
  • 在“信息”页面的“自定义iOS目标属性”下,添加了一个“必需的后台模式”节点,其中包含“应用程序使用AirPlay播放音频或流式音频/视频”和“应用程序从网络下载内容”的条目

  • 在播放器模块的初始化代码中,我包括以下调用:

    [[AVAudioSession sharedInstance]设置类别:AVAudioSessionCategoryPlayback错误:&error]

    在没有发出错误信号的情况下完成

根据我的日志,一旦应用程序切换到后台,我就停止接收任何回调,因此播放几乎立即停止。我需要做什么才能让它继续

  • 正在检查音频会话是否处于活动状态
  • 正在检查AudioQueueRef是否正在运行:

    UInt32 isRuning = NO;
    UInt32 size = sizeof(isRuning);
    AudioQueueGetProperty(inAQ, kAudioQueueProperty_IsRunning, &isRuning, &size);
    

  • 你试过从捆绑包播放音频吗?试着设置
    AVAudioSessionCategoryPlayAndRecord
    @PrashantTukadiya-我没有试过从捆绑包播放音频,但看不出这有什么区别-系统不知道音频数据来自何处,因为我将它加载到内存中,然后通过缓冲区播放;从未调用从我自己的内部缓冲区重新填充音频队列缓冲区的回调。更改类别无效。更改类别无效。。。除了在手机上使用时使播放通过接收器而不是扬声器进行(不过模拟器上没有变化)。在我的播放操作期间向
    AVAudioSession.sharedInstance().setActive(true)
    添加呼叫没有任何效果,因此会话似乎处于活动状态(或者存在其他问题)。队列肯定正在运行,并在前台播放(当应用程序返回前台时自动恢复播放)。