java - AudioInputStream的read方法是否排除header?

标签 java audio wav

我正在 Java 中处理音频数据(WAV 文件),并且正在使用 AudioInputStream 读取音频文件。我有一个问题,当我使用AudioInputStream读取数据时,它是否还包含 header 或 header 将被删除?

AudioInputStream ais = AudioSystem.getAudioInputStream(file);
ais.read(data);

将包含哪些数据?所有数据以及标题?我在这个链接上读过一些东西。 http://docs.oracle.com/javase/tutorial/sound/converters.html 它说它将返回音频数据,但我很困惑音频数据是否只意味着数据或 header 。

谢谢

最佳答案

Does AudioInputStream's read method exclude header?

是的, header 被排除。根据我的经验,AudioInputStream 也可以正确忽略非标准非音频 block 。 AudioInputStream#read 应该只读取音频数据的字节。

这是一个临时测试。

File f = new File("your audio file.wav");
FileInputStream fis = new FileInputStream(f);
AudioInputStream ais = AudioSystem.getAudioInputStream(f);

// prints the number of bytes that are detected not to be audio data
System.out.println(fis.available() - ais.available());

What data will contain?

数据将包含直接来自文件音频部分的原始字节。

关于java - AudioInputStream的read方法是否排除header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26598753/

相关文章:

javascript - 如果重复单击同一按钮,HTML 音频不会循环播放

audio - 如何减少wav流的数量?

java - 无论 RAM 大小或 docker 配置,我都会收到警告 "Container memory limit unset. Configuring JVM for 1G container."

html - 网页中的声音输入

java - 如何从打包到它自己的 .jar 中的 java 库访问资源

winapi - 使用 Waveform Audio API Windows 从扬声器捕获声音

wav - 我如何确定 wav 文件的持续时间

c++ - wav文件中奇怪的滴答声

java - 将字符串从另一个 SearchActivity 添加到 SQLite 数据库后更新 Fragment 内的 ListView

java - java 按最近日期从列表中检索数据