gpt4 book ai didi

java - 将 wav/wave 文件读取到短[]数组中

转载 作者:行者123 更新时间:2023-12-02 19:45:46 27 4
gpt4 key购买 nike

是否有一个API可以将wav文件读取到一个short[]数组中?我正在尝试将 wav 文件读入短数组。

我找不到任何内置的 API

最佳答案

通过 AudioInputStream 将其引入,就像通常处理声音一样。

对于从流中获取的每个缓冲区负载,一次迭代两个字节(如果是 16 位编码)并使用您最喜欢的算法将两个字节转换为单个短整型。 (取决于文件是 Big-Endian 还是 Little-Endian。)

然后,通过附加到您喜欢的短数组形式来保存结果,而不是像在更常见的播放情况下那样发布到 SourceDataLine。

引自 Java 教程:

Because the Java Sound API gives you access to the audio data as an array of bytes, you can alter these bytes in any way you choose.

您可以查看此 Java 声音教程中的代码:Using Files and Format Converters ,“读取声音文件”部分并注意注释:“在这里,对现在位于 audioBytes 数组中的音频数据执行一些有用的操作...”

例如,有用的东西可能是:

    myShortArray[i] = (short)(( buffer[i*2] & 0xff )|( buffer[i*2 + 1] << 8 ));

buffer = 接收 AudioInputStream 的字节缓冲区。

i = 数组的索引。

关于java - 将 wav/wave 文件读取到短[]数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314635/

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