gpt4 book ai didi

android - 您是否尝试过在 Android 中使用缓冲区大小为 2 的幂的 Class AudioTrack?

转载 作者:行者123 更新时间:2023-11-29 18:18:40 25 4
gpt4 key购买 nike

我正在使用 AudioTrack 类的 Android 应用程序工作,有时我会收到异常“无效的音频缓冲区大小”。因为我打算使用 FFT,所以我将缓冲区大小设置为 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`

最佳答案

我刚刚意识到,您不能使用奇数作为缓冲区大小。尝试选择您的尺码并执行以下操作:

if (size % 2 == 1)
size++;`

这将使奇数变为偶数。

关于android - 您是否尝试过在 Android 中使用缓冲区大小为 2 的幂的 Class AudioTrack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6722422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com