我在iOS应用程序中使用AudioSessionSetActive
(true(和AudioSessionSetActive
(false(将AudioSession
设置为true或false。在任何时候,我都想知道会话是否处于活动状态。有办法做到这一点吗?
刚刚遇到了同样的事情!没有用于查询会话是否处于活动状态的AudioSessionProperty键。我相信这是苹果认为应用程序应该以某种方式运行的另一种"即用即忘"交易。例如,大多数应用程序不需要知道状态,他们只需要在需要音频时设置它,并在播放完音频后无条件地终止它。当然,这只适用于90%的人。抱歉,因为这不是最好的答案,我只是报告我的怀疑。也许其他人有更好的主意?
您可以在启动应用程序时通过检查otherAudioPlaying
属性来检查是否有音频在由另一个应用程序启动时播放。对于内部跟踪,您可以在执行AudioSessionSetActive(BOOL setActive)
调用时使用布尔值。尽管BOOL的使用听起来并不是一个好方法。根据我目前的知识,我找不到任何其他方法来确定AudioSession是否处于活动状态。
您可以使用此api来了解音频会话是否在iOS中处于活动状态。
BOOL isPlaying = [[AVAudioSession sharedInstance] isOtherAudioPlaying];