Java - 从 .wav 中删除 header

标签 java audio wav javasound

我正在使用以下代码将 .wav 文件读入字节数组。

AudioInputStream inputStream = 
    AudioSystem.getAudioInputStream(/*my .wav file */);
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
inputStream.close();

有没有一种简单的方法可以在读入字节数组之前或之后删除 .wav header ?

最佳答案

来自 AudioInputStream read() 方法的数据已经是原始 wav 数据。因此无需担心 .wav header 。如果您确实想要访问 header 内容,您可以使用与此 AudioInputStream 关​​联的 AudioFormat 对象。

http://download.oracle.com/javase/tutorial/sound/converters.html

顺便说一句,除非您的 .wav 文件非常小,否则您不会像处理示例那样通过一次读取就获得所有文件。您必须将读取内容放入一个 while 循环中,就像上面引用的教程中的第一个代码片段一样。

关于Java - 从 .wav 中删除 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1440258/

相关文章:

python - 在纯python中以间隔分割24位深度wav声音

java - 如何使用 java 播放 .wav 文件

java - 让 AlertDialog 等待用户输入?

java - Java 中的字符串相等性

python - 如何将wav音频文件格式(样本宽度)转换为8位格式?

ios - 在应用程序处于后台时更改状态栏中的文本

c++ - 在不关闭流的情况下写入 Wave header 和添加数据

java - 如何更改/自定义 JFreeChart 的十字准线覆盖?

java - 设计 api 获取服务、executorservice 和可变端点列表

android - 有没有办法在我的Android应用中发出中音?