什么时候使用 AVAudioSession.setActive?

rsc*_*rsc 4 singleton ios avaudiosession

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

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

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

Fra*_*iro 7

来自苹果文档:

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

激活和停用您的音频会话

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

对于时钟或日历闹钟或来电,系统会停用您的音频会话。当用户解除警报或选择忽略电话时,系统会允许您的会话再次处于活动状态。