2016-03-14 91 views
2

在我的Android應用程序中,我使用AudioTrack API輸出從RFCOMM藍牙連接收到的音頻字節。音頻按預期播放,非常清晰。然而,應用程序崩潰偶爾由於在AudioTrackShared.cpp以下斷言:瞭解Android中的AudioTrack聲明

stepCount <= mUnreleased && mUnreleased <= mFrameCount 

我真的不知道是什麼這一說法需要,但沒有任何人有什麼可能導致此問題的想法?爲AudioTrack

我的設置:我可以提供,如果需要額外的源代碼

int minSize = AudioTrack.getMinBufferSize(8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT); 
mAudioPlayer = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, minSize * 4, AudioTrack.MODE_STREAM); 
+0

您是否正在重複使用您寫入到AudioTrack的緩衝區? –

+0

@MimmoGrottoli我每次寫入AudioTrack時都會創建一個大小爲64的新數組。 – Rahin

+0

它是從AudioTrach.getMinBufferSize獲得的值嗎? –

回答

0

讓AudioTrack緩衝區大小從minBufferSize得到相同。這可以解決你的問題。