1
處理AudioFocus的損失可以「躲開」的標準方法如下:如果通知無法聽到,請不要播放音頻音量?
OnAudioFocusChangeListener afChangeListener = new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
if (focusChange == AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) {
// Lower the volume
}
}
};
但是,如果這是作爲顯示即使該通知是聽不見的,你會調低音量,如當DnD模式在Android 5.0+中打開時。顯然,用於確定DnD是否有效的幾種不同方法:getAutomaticZenRule()
(wtf?),getCurrentInterruptionFilter()
和getNotificationPolicy()
(其需要特殊訪問)。 < API 23中沒有一個可用。
是否有一種簡潔的方式來判斷請求可以通過鴨子進行的AudioFocus的流是否真的可以聽到,而不會混淆以上所有內容? Google Play音樂似乎很好地處理了這種情況。