使用AudioTrack来EQ a .WAV文件?

时间:2013-03-24 13:48:08

标签: android signal-processing pcm

我需要做一些EQing并为.wav文件应用数字效果。有没有办法从下面的“缓冲区”中提取单个PCM样本值来执行一些EQ /处理? AudioTrack是正确的做法吗?

private void playSound() {


audioTrack.play();
double input = 0;
int bufferSize = 512;
byte[] buffer = new byte[bufferSize];
InputStream inputStream = getResources().openRawResource(R.raw.wave);

    try {
        while((input = inputStream.read(buffer)) != -1)
        audioTrack.write(buffer, 0, input);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:1)

从API级别9(Gingerbread)开始,您可以将Equalizer AudioEffect附加到AudioTrack的audio session

另一种选择是在将应用程序写入音轨之前处理应用程序中的PCM数据。出于性能原因,这可能是您希望在本机代码中而不是Java中执行的操作。实现自己的均衡器效果的理论有点适用于此处的Q& A格式在StackOverflow,所以你必须在其他地方搜索相关信息,如果这是你想要的路线。