最好應該是用mHndler.post(mGetVoiceLevelRunnable)來執行,然后在錄音結束時再remove掉應該會比較好。
2015-05-24
在AudioRecorderButton里面mHandler的MSG_AUDIO_PREPARED處理上,是直接new出的一個線程,在錄音停止時也沒有remove掉這個線程,所以我在真機上測試時,按下按鈕松開后會報錯,因為那個線程沒有被關閉而還去執行了AudioManager的getVoiceLevel()方法,而此時getVoiceLevel()方法里面的mMediaRecorder是為null的,所以報了空指針異常。目前我的一個粗暴解決辦法是直接在getVoiceLevel()方法里的if里去判斷下mMediaRecorder != null。
2015-05-24
@linshiyx 應該是不需要停止了,因為在MediaManager里面已經做了mMediaPlayer是否為null的判斷,如果不為null,說明還在播放前面的音頻,在播放本次點擊的音頻時進行了reset()操作
2015-05-24
Dialog的Theme少了個item:
<item name="android:windowNoTitle">true</item>
<item name="android:windowNoTitle">true</item>
2015-05-22