2016-03-14 79 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得到相同。这可以解决你的问题。