0

我需要做一些 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();
    }
4

1 回答 1

1

从 API 级别 9 (Gingerbread) 开始,您可以将均衡器AudioEffect 附加到 AudioTrack 的音频会话

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

于 2013-03-25T09:35:00.847 回答