在Android中反转音频文件

Sam*_*ley 6 audio reverse android wav

我正在开发这个应用程序的非常阶段,但调查它我已经遇到了问题.我需要能够向后播放音频文件(你知道要显示隐藏的消息;)).我没有在Android上使用音频的经验,也不知道这是否可能.

我在这里发现了一个问题,解决了java中的问题(点击这里查询)

但这使用了android不支持的javax.sound库.我是否需要此库来解决此问题,还是有另一种方法来反转音频文件?

Mus*_*sis 6

典型的WAV文件包含一个44字节的标头,后跟实际的样本值."帧"的大小取决于WAV文件的属性:立体声文件和每个样本16位的文件将具有4字节帧大小(左侧样本为2个字节,右侧样本为2个字节) ).

因此,在代码中,您将通过创建与原始文件大小相同的字节数组来创建第二个WAV文件.您将原始的44字节标题复制到副本中,然后从最后一个开始迭代原始帧并向前移动到第一个.您将每个帧复制到复制数组中的反向位置(即最后一个原始帧被复制到标题之后的复制数组中;在第一帧之后复制倒数第二帧等).然后只播放反转文件.

因此,您不需要javax.sound库来执行此操作 - 您只需要能够复制和操作字节.仅供参考,并非所有WAV文件都是"规范"的(规范意味着44字节标题加上样本值,没有其他内容).WAV格式实际上是RIFF格式,这意味着理论上您需要对样本值进行更复杂的提取.在实践中(特别是如果你自己创建WAV文件),你通常可以使用我在这里描述的更简单的方法.

注意:如果您的声音是MP3文件,则反转是一项更复杂的任务,因为样本数据不会作为样本存储在MP3文件中.如果你正在使用MP3,一种扭转它们的方法是将它们转换为WAV,然后反转WAV文件.