何时使用AVAudioSession.setActive?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了何时使用AVAudioSession.setActive?相关的知识,希望对你有一定的参考价值。

我的理解是你的应用程序中只能有1个AVAudiosession(因为它是一个单例,因此你总是会收到相同的实例)。

那么,setActive()函数的目的是什么?由于我只能有一个会话,因此我没有看到该功能的正确用例。

AVAudioSession文档:https://developer.apple.com/documentation/avfoundation/avaudiosession

答案

来自Apple doc:

使用setActive,您的应用程序正在要求系统使用音频。例如,您可以在音乐应用程序已播放时发出请求,并且系统根据优先级状态可能会中断它以播放音频。

激活和取消激活您的音频会话

虽然AVFoundation播放和录制类会自动激活您的音频会话,但手动激活它会让您有机会测试激活是否成功。但是,如果您的应用具有播放/暂停UI元素,请编写代码,以便用户必须在激活会话之前按“播放”。同样,在更改音频会话的活动/非活动状态时,请检查以确保呼叫成功。编写代码以优雅地处理系统拒绝激活会话。

系统会停用音频会话以查看时钟或日历闹钟或来电。当用户解除警报或选择忽略电话呼叫时,系统会允许您的会话再次激活。

以上是关于何时使用AVAudioSession.setActive?的主要内容,如果未能解决你的问题,请参考以下文章

何时使用,何时不使用 Try Catch Final

何时使用 Storyboard 以及何时使用 XIB

何时使用 GetXXX() 方法以及何时使用 Getter 属性

Vuex - 何时使用 getter 以及何时使用状态

何时使用 .First 以及何时将 .FirstOrDefault 与 LINQ 一起使用?

何时使用 OSGi EventAdmin,何时不使用?