读取音频文件并使用Java显示波形。

时间:2012-10-31 21:45:03

标签: java audio bytearray waveform

有人可以告诉我如何读取音频文件,将其存储在字节数组中并继续显示其波形吗?我对Java的了解非常基础。如果有人可以将我链接到Java音频编程的学习材料,那就太棒了。

2 个答案:

答案 0 :(得分:6)

您需要了解有关脉冲编码调制的一些基础知识,因为波形是以数字方式表示为离散字节/值。大多数波形格式只是一些标题/元数据,然后是脉冲代码流。

以下是数字采样和脉冲编码调制的入门读物:

http://www.speakingcode.com/2011/12/31/primer-on-digital-audio-and-pulse-code-modulation-pcm/

之后,它相对简单。加载文件,读取元数据,以便了解采样率,位深度等,然后基本上建立一个带有pcm值的数组。一般的java文件读取技术将适用于此,如在Java教程,许多在线页面,以及有关堆栈溢出的几个相关问题。

http://docs.oracle.com/javase/tutorial/essential/io/

一旦你有了你的数组,你的值就会有效地代表那个时刻波浪的幅度位置......缩放这些值并转化为图像 - 有很多方法可以做到这一点,它真的取决于你。有些事情需要考虑的是你关心的时间轴,还是只关注波形的形状?如果您只关心形状,则更容易,因为您不需要在x轴上适当地标记时间和比例(假设您遵循x轴上的时间标准和y轴上的振幅)

答案 1 :(得分:2)

您的问题都已在SO上得到解答。请参阅我对这些问题的回答:

音频和java的基础知识:

How can I create a sound file in Java

绘制波形和波形概述:

How can I draw sound data from my wav file?