如何在iOS 10上捕获系统告警为triggered/dismissed的事件
How to capture the events of system alarm being triggered/dismissed on iOS 10
这是我的场景:我有一个视频播放器正在播放一些 video/audio 并且突然响起警报,因为我之前设置了它。
在 iOS 10
之前,警报的 UI 和音频会阻塞主 UI 线程,因此可以通过观察 UIWindowDidResignKeyNotification
.[=24 来捕获警报事件=]
但在 iOS 10
上,警报 UI 的行为似乎与 Notification messages
一样,不会阻止主 UI。
但是它的闹钟声音会接管音频线程,所以结果是播放视频画面,不播放视频声音,而是播放闹钟声音。
对于 iOS 10
,我所做的是观察 AVAudioSessionInterruptionNotification
,当警报 运行 时会发布,一旦我收到它,我就会暂停我的视频播放。
但是这会导致另一个问题,就是我的用户在关闭警报后必须再次手动单击play
按钮,这不太好。
Plus AVAudioSessionInterruptionNotification
会在任何其他类型的系统音频被触发时发布,例如 iMessage
、Push Notification
是音频非常短的消息,并且会导致暂停确实会给用户带来麻烦。
所以我想知道有没有办法监听用户解除闹钟的事件UI up/down.
或者如果有人能想出其他解决方案来解决此类问题。
更新:
这个alarm sound takes over the audio thread
问题只有在视频被硬件解码时才会发生。
如果是视频的默认系统解码就可以了。
如果来电被触发并且来电声音也会接管音频线程,这很好,因为来电会阻塞主线程 UI 所以我也可以通过观察来管理它 UIWindowDidResignKeyNotification
.
好吧,我的错是我没有仔细阅读 apple doc,一切都是 here。
您可以使用AVAudioSessionInterruptionNotification
中的用户信息。
它给出了它何时开始、何时结束甚至何时是恢复的最佳时间的枚举。
这是我的场景:我有一个视频播放器正在播放一些 video/audio 并且突然响起警报,因为我之前设置了它。
在 iOS 10
之前,警报的 UI 和音频会阻塞主 UI 线程,因此可以通过观察 UIWindowDidResignKeyNotification
.[=24 来捕获警报事件=]
但在 iOS 10
上,警报 UI 的行为似乎与 Notification messages
一样,不会阻止主 UI。
但是它的闹钟声音会接管音频线程,所以结果是播放视频画面,不播放视频声音,而是播放闹钟声音。
对于 iOS 10
,我所做的是观察 AVAudioSessionInterruptionNotification
,当警报 运行 时会发布,一旦我收到它,我就会暂停我的视频播放。
但是这会导致另一个问题,就是我的用户在关闭警报后必须再次手动单击play
按钮,这不太好。
Plus AVAudioSessionInterruptionNotification
会在任何其他类型的系统音频被触发时发布,例如 iMessage
、Push Notification
是音频非常短的消息,并且会导致暂停确实会给用户带来麻烦。
所以我想知道有没有办法监听用户解除闹钟的事件UI up/down.
或者如果有人能想出其他解决方案来解决此类问题。
更新:
这个alarm sound takes over the audio thread
问题只有在视频被硬件解码时才会发生。
如果是视频的默认系统解码就可以了。
如果来电被触发并且来电声音也会接管音频线程,这很好,因为来电会阻塞主线程 UI 所以我也可以通过观察来管理它 UIWindowDidResignKeyNotification
.
好吧,我的错是我没有仔细阅读 apple doc,一切都是 here。
您可以使用AVAudioSessionInterruptionNotification
中的用户信息。
它给出了它何时开始、何时结束甚至何时是恢复的最佳时间的枚举。