2012-10-31 49 views
0

任何人都可以告诉我如何读取音频文件,将其存储在字节数组中并继续显示其波形?我对Java的知识是非常基础的。如果任何人都可以将我与Java音频编程学习资料联系起来,那就太好了。读取音频文件并用Java显示波形。

+2

没有ügoogle一下? – PermGenError

+0

认真,谷歌有很多只是“如何读取在Java中的音频文件”命中 – peroija

+1

请参阅此链接http://stackoverflow.com/questions/86083/any-good-recommendations-for-mp3-sound -libraries-for-java – PermGenError

回答

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轴上的幅度)

+2

请添加代码而不是链接,因为链接可能已过期。我在第二个链接中获得了404。 – bhavikkumar