Android播放器Audio Focus



最近在github專案中加入了Audio Focus的處理,Android的文件參考這裡

主要針對多個App同時使用聲音播放時,導致使用者觀感不佳的問題進行調適,不過這個功能需要每個會使用聲音播放APP都遵循一定的處理才能達成。播放器的介接可以參考googlesamples

想要獲取audio focus的app會發出下面這些要求:
AudioManager.AUDIOFOCUS_GAIN 期待其他APP長期停止
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT 期待其他APP暫時停止
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK 期待其他APP暫時降低音量
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE 期待所以有APP都暫時停止

其他APP會收到相關onAudioFocusChange事件
AudioManager.AUDIOFOCUS_GAIN 取得audio focus或是重新取得audio focus, 可恢復播放音量
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT 暫時失去audio focus, 建議暫停/停止播放
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK 暫時失去audio focus, 建議降低音量
AudioManager.AUDIOFOCUS_LOSS 長期失去audio focus, 建議停止播放

在專案中引用PlayerAdapter.java元件,而因為audios focus在Oreo(Android 8)有改過api,所以進行的小改,修改結果可查看這裡






留言