2

我嘗試播放通知聲音,而不會干擾其他音樂播放通知聲音interupting音樂

通知聲音可以通過NotificationBuilder

由OS本身玩過2種方式

1)播放作用: - 處理所有在電話呼叫和其他情況下不播放聲音的情況 問題: - 當播放音樂和通知時,它會將音頻焦點從音樂轉移到通知,通過降低或消除音樂(取決於音樂的方式)玩家的應用程序已經處理了損失音頻焦點。

2)我們通過我們的媒體播放器,每當談到通知

A)上播放通知STREAM聲音播放--->工作完全正常,但是當通過耳機

B)播放上播放給迴避的probem系統流

作用: - 音頻焦點無移動性,當談到通知

的問題,所以沒有對音樂的影響: - 我們必須處理的電話通訊中的電話和VOIP不播放聲音,以及其他情況..並且可能是其他未知的情況。

但我覺得watsup做得很好。

所以不知道它是怎麼做

回答

2

Android 5.0 behavior changes on notification sounds

如果您正在使用RingtoneMediaPlayer,或Vibrator類添加聲音和振動您的通知,刪除此代碼,以便系統可以在優先模式下正確顯示通知。相反,請使用Notification.Builder方法來添加聲音和振動。

將設備設置爲RINGER_MODE_SILENT會導致設備進入新的優先級模式。如果將設備設置爲RINGER_MODE_NORMALRINGER_MODE_VIBRATE,設備將保留優先模式。

此前,Android使用STREAM_MUSIC作爲控制平板設備上音量的主控流。在Android 5.0中,手機和平板電腦設備的主音量流現在是統一的,並由STREAM_RINGSTREAM_NOTIFICATION控制。

,因爲沒有直接的方法來檢測設備是否處於優先模式,你應該總是使用Notification.Builder/NotificationCompat.Builder方法聲音添加到您的通知,以確保您滿足用戶的期望。

+0

感謝您對此的清除概念,但對於5.0以下的設備,我該怎麼做?有什麼辦法嗎?謝謝 –

+0

您不應該做任何不同的事情:'NotificationCompat.Builder'應該用於所有API級別,因爲是在所有API級別,設備上提供一致體驗的最佳方式,並處理您正確指出的所有邊緣案例。 – ianhanniballake

+0

但是在這種情況下,當Google Play中播放音樂時,如果通知來自我的App.OS,則會將Audio Focus轉變爲我們的通知,因爲它包含聲音,因此Google播放會降低音量,然後播放noitification,然後音量恢復。 但是這在watsup中不會發生。 那麼watsup如何處理呢? –