[英]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
,例如iMessage
, Push Notification
,它们是音频非常短的消息,并且导致暂停会让用户遇到麻烦。
所以我想知道是否有一种方法来监听用户关闭/关闭警报UI的事件。
或者,如果有人能提出一些其他解决方案来解决这类问题。
更新:
此alarm sound takes over the audio thread
问题仅在视频由硬件解码时发生。
如果它是视频的默认系统解码,那么它会没问题。
如果来电被触发并且通话声音也将接管音频线程,这很好,因为来电将阻止主UI,所以我也可以通过观察UIWindowDidResignKeyNotification
来管理它。
好吧,我的错,我没有读过苹果文档,一切都在这里 。
您可以在AVAudioSessionInterruptionNotification
使用userInfo。
它给出了它开始时,它何时结束,甚至是恢复的最佳时间的枚举。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.