典型的WAV文件包含一个44字节的标头,后跟实际的样本值."帧"的大小取决于WAV文件的属性:立体声文件和每个样本16位的文件将具有4字节帧大小(左侧样本为2个字节,右侧样本为2个字节) ).
因此,在代码中,您将通过创建与原始文件大小相同的字节数组来创建第二个WAV文件.您将原始的44字节标题复制到副本中,然后从最后一个开始迭代原始帧并向前移动到第一个.您将每个帧复制到复制数组中的反向位置(即最后一个原始帧被复制到标题之后的复制数组中;在第一帧之后复制倒数第二帧等).然后只播放反转文件.
因此,您不需要javax.sound库来执行此操作 - 您只需要能够复制和操作字节.仅供参考,并非所有WAV文件都是"规范"的(规范意味着44字节标题加上样本值,没有其他内容).WAV格式实际上是RIFF格式,这意味着理论上您需要对样本值进行更复杂的提取.在实践中(特别是如果你自己创建WAV文件),你通常可以使用我在这里描述的更简单的方法.
注意:如果您的声音是MP3文件,则反转是一项更复杂的任务,因为样本数据不会作为样本存储在MP3文件中.如果你正在使用MP3,一种扭转它们的方法是将它们转换为WAV,然后反转WAV文件.
| 归档时间: |
|
| 查看次数: |
3670 次 |
| 最近记录: |