【我的Android進階之旅】解決Android SoundPool播放音效沒有類似於MediaPlayer.OnCompletionListener接口的播放完成回調通知效果

一、需求場景

最近有個小的應用場景,需要不停的播放一些短促的音樂或者音效,不同的應用場景會播放不同的音樂,有的時候就導致了多個聲音疊加在一起播放的問題。

爲了要解決這個問題,只能是按照順序一個一個聲音播放,但是SoundPool並沒有提供播放完成的回調通知,android.media.SoundPool.OnLoadCompleteListener

在這裏插入圖片描述

二、實現自己的SoundPool播放完成回調

思路:播放完成的通知也就是從開始播放到播完這個音效的時長,也就是這個音效的時長;所以我們只需在初始化的時候獲取到音效的時長,然後定時音效的時長之後通知回調即可。

1、獲取要播放的音頻時長
2、定個時,在播放時長之後,通知回調即可。

2.1 獲取音頻時長

  • 第一種方案: 通過MediaMetadataRetriever來獲取音頻時長
   private long getMp3Durati
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章