繁体   English   中英

如何捕获iOS 10上触发/解除的系统警报事件

[英]How to capture the events of system alarm being triggered/dismissed on iOS 10

这是我的场景:我有一个视频播放器播放一些视频/音频,然后突然发出警报,因为我之前设置了它。

iOS 10之前,警报的UI和音频将阻止主UI线程,因此可以通过观察UIWindowDidResignKeyNotification来捕获警报事件。

但是在iOS 10 ,似乎警报UI的行为类似于Notification messages并且不会阻止主UI。

但它的警报声会接管音频线程,因此结果是视频图像正在播放而视频声音没有播放,而是播放了警报声。

iOS 10 ,我所做的是观察AVAudioSessionInterruptionNotification ,它将在警报运行时发布,一旦我得到它,我就暂停播放视频。

但这导致了另一个问题,即我的用户必须在他们解除警报后再次手动点击play按钮,这不太好。

当触发任何其他类型的系统音频时,会发布AVAudioSessionInterruptionNotification ,例如iMessagePush Notification ,它们是音频非常短的消息,并且导致暂停会让用户遇到麻烦。

所以我想知道是否有一种方法来监听用户关闭/关闭警报UI的事件。

或者,如果有人能提出一些其他解决方案来解决这类问题。

更新:

alarm sound takes over the audio thread问题仅在视频由硬件解码时发生。

如果它是视频的默认系统解码,那么它会没问题。

如果来电被触发并且通话声音也将接管音频线程,这很好,因为来电将阻止主UI,所以我也可以通过观察UIWindowDidResignKeyNotification来管理它。

好吧,我的错,我没有读过苹果文档,一切都在这里

您可以在AVAudioSessionInterruptionNotification使用userInfo。

它给出了它开始时,它何时结束,甚至是恢复的最佳时间的枚举。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM