【问题标题】:AVAudioSession red status bar with route change带有路由变化的 AVAudioSession 红色状态栏
【发布时间】:2016-06-29 04:28:12
【问题描述】:

当我的应用程序被发送到后台时,红色状态栏会短暂闪烁。我可以忍受这一点。问题是,如果用户随后更改路线(例如,插入或拔出耳机),红色状态栏会亮起并保持亮起(直到应用程序被终止或前台)。

我的应用使用音频会话类别AVAudioSessionCategoryPlayAndRecord,但在后台运行时不使用。我将类别更改为播放,然后在应用程序进入后台时停用音频会话,但无法抑制红色闪烁,也无法抑制路由更改的更大问题。

【问题讨论】:

    标签: ios audio avaudiosession


    【解决方案1】:

    看起来更改类别还不够——如果会话是使用 inputEnabled true 创建的,那么您就会遇到状态警告。您必须完全释放会话。 See this question 与最终答案讨论“......唯一的方法是实际释放audioController。”

    【讨论】:

    • 我看到了那个答案,但它基于惊人的音频引擎,我没有看到如何在此处应用它。 AVAudioSession 是一个单例,afaik 释放它没有意义。
    • 看看AEAudioController.m,看看它在dealloc中的作用是否适用于你自己的代码。
    • 好主意,但我没有发现任何有用的东西。这完全是对其自身数据结构的拆解。
    • 您已关闭所有后台处理?您没有保留 AUGraph 或任何其他系统数据结构?
    • 我没有做任何低级的事情,只是使用 AVFoundation 进行播放和麦克风输入。但是,你确实给了我一个很好的引导……我需要查看我正在使用的 OpenEars 语音识别器,看看是否是导致问题的原因……我专注于音频会话,没有想到这一点。跨度>
    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 2015-02-21
    相关资源
    最近更新 更多