关于Java Sound API的一些问题

时间:2011-11-29 04:12:47

标签: java api audio javasound

我在这里相对较新,并且完全使用了Java的Sound API和音频编程。我一直想知道是否可以使用Java的Sound API执行以下操作:

  • 提取音频文件所包含的各个频率的值。 (例如:频率范围为20Hz-20kHz的振幅)
  • 根据这些值,执行操作,然后编写新的修改后的音频文件。

如果您想知道为什么我问这些,我打算使用基于swarm的优化算法创建自定义音频压缩格式。那么对于能够提供更直接答案的人来说:使用Java的Sound API创建音频压缩程序是否可行?

感谢。

2 个答案:

答案 0 :(得分:1)

  

..我打算创建自定义音频压缩格式..可以使用Java的Sound API创建音频压缩程序吗?

在此处的JavaSound info.页面引用。

服务提供商接口

Java Sound API使用服务提供程序接口来识别编码器和编码器。声音格式和序列类型的解码器。这样,添加对新格式或类型的支持就像为它提供解码器和/或编码器一样简单,将SPI文件添加到它所在的Jar的清单中,然后将Jar添加到运行时类 - 申请的路径。


因此,如果您可以提供编码器/解码器,那么是。

答案 1 :(得分:0)

你当然可以读取波形。 I.E.,对于44.1 kHz文件,您可以每秒读取44,100个不同的样本值。我不知道Java Sound API会为你计算音频,但是如果你已经开始进行操作,你可以自己计算你需要的任何东西。

几年前,我曾沿着这些线路使用某些东西来解码可疑的SMPTE时间码信号,打印出各种位和字段。 (基本上,我只需跟踪值越过0,以及持续多长时间。)

简而言之,是的,创建一个音频压缩程序肯定是可能的 - 虽然我知道很多人会对在Java中选择这样做感到惊讶。