簡體   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