關於寫android音頻方面的應用

最近在寫一款內置簡單的音頻播放器的應用,寫一點關於音頻播放器一些要注意的事項

1、關於按鍵KeyEvent.KEYCODE_BACK的處理,一定要對MediaPlayer對象是否正在播放以及是否爲空(null&&isplay()),進行判斷,並對其進行釋放

2、關於播放按鈕的處理,一般情況下,點擊播放按鈕後,音頻開始播放,播放按鈕的狀態應該會變成暫停圖標或文字,建議可以寫幾個常量作控制狀態,點擊暫停按鈕後,按鈕狀態變爲暫停狀態(pause),圖標又變爲播放按鈕的圖標

3、因爲播放按鈕的特殊性,建議設置成static靜態的,以確定在播放類的對播放進度監聽時,如果播放完,按鈕圖標要重新回到播放圖標(因爲點擊播放按鈕後,圖標已經變成暫停圖標了)

4、上一首、下一首的處理,要改變點擊播放按鈕時,重新加載的音頻文件

5、建議最好對音頻播放的各個狀態進行監聽,MediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener()——音頻是否出錯,MediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener()——音頻是否開始緩衝,

MediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener()——音頻是否開始準備,

MediaPlayer.setOnCompletionListener(new OnCompletionListener()——音頻是否播放完成,這幾個監聽也可以利於我們進行對程序進行排錯。

6、音頻播放最好單獨開一個線程,否則你不想自己的應該因爲只有一個線程被阻塞吧,而不能進行其他操作吧

7、因爲MediaPlayer本身的原因,你調用start()播放方法的時候,他總是會延遲那麼1-2秒,所以你可以用seekTo()方法跳過1000ms

8、有時候,如果不處理,播放音樂默認是正在播放的時候,才能對其音量的大小,作用音量鍵調整,那麼我們可以用下面這句話,獲取音頻服務,直接去控制,音樂沒有播放的時候,也可以調整好音量的大小

AudioManager am = (AudioManager)Context.getSystemService(Context.AUDIO_SERVICE);

/ /獲取音頻服務然後強轉成一個音頻管理器,後面方便用來控制音量大小用

Activity.setVolumeControlStream(AudioManager.STREAM_MUSIC);
// 設定調整音量爲媒體音量,當暫停播放的時候調整音量就不會再默認調整鈴聲音量了

9、針對音樂播放的方法,一定要注意一點,就是在對MediaPlayer對象初始化過,之後,一定要執行一下reset(),重置MediaPlayer對象爲初始化狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章