【问题标题】:Reading an audiofile and displaying the waveform with Java.读取音频文件并使用 Java 显示波形。
【发布时间】:2012-10-21 11:58:13
【问题描述】:

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

【问题讨论】:

  • 说真的,谷歌有很多点击“如何在 java 中读取音频文件”
  • 有很多点击,但我只发现了未解决的问题,尤其是在将音频数据存储到字节数组时。

标签: java audio bytearray waveform


【解决方案1】:

您的两个问题都已在 SO 上得到解答。查看我对这些问题的回答:

音频和java基础:

How can I create a sound file in Java

绘制波形和波形概览:

How can I draw sound data from my wav file?

【讨论】:

【解决方案2】:

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

这里是数字采样和脉冲编码调制的入门:

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

【讨论】:

  • 请添加代码而不是链接,因为链接可能已过期。我在第二个链接中得到 404。
猜你喜欢
  • 1970-01-01
  • 2020-07-09
  • 2016-12-09
  • 2011-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多