1
我正在为类AudioTrack为Android的一个应用程序工作,有时我得到异常“音频缓冲区大小无效”。由于我打算使用FFT,因此我将缓冲区大小设置为2的倍数,从那时起,有时候我会得到这个异常。任何想法是为什么?您是否尝试过使用Android中的Class AudioTrack,其缓冲区大小为2的幂数?
感谢, 丹尼尔
我的代码是非常简单的:
private void playTrack(short []buffer){
try{
Log.i(TAG,"Play track, Buffer size: "+buffer.length);
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
mAudioIn.getFrequency(),
mAudioIn.getChannelConfig(),
mAudioIn.getAudioEncoding(),
buffer.length,
AudioTrack.MODE_STREAM);
audioTrack.play();
audioTrack.write(buffer, 0, buffer.length);
}catch(Throwable t){
Log.e(TAG,"Play track, something's wrong: "+t.getMessage()+ " When buffer size is:"+buffer.length);
}
}`enter code here`
是的文档说缓冲区大小需要是帧大小的倍数。但是文档从来不解释“框架”是什么。 – Curtis