我正处于开发这个应用程序的早期阶段,但研究它我已经遇到了一个问题。我需要能够向后播放音频文件(你知道喜欢揭示隐藏的消息;))。我没有在 Android 上处理音频的经验,也不知道这是否可能。
我在这里发现了一个问题,它解决了java中的问题(点击这里提问)
但这使用了android不支持的javax.sound库。我需要这个库来解决这个问题还是有其他方法来反转音频文件?
典型的 WAV 文件由 44 字节标头和后面的实际样本值组成。 “帧”的大小取决于 WAV 文件的属性:立体声且每样本 16 位的文件将具有 4 字节的帧大小(左样本为 2 个字节,右样本为 2 个字节) )。
因此,在代码中,您可以通过创建与原始大小相同的字节数组来创建第二个 WAV 文件。您将 44 字节标头从原始帧复制到副本中,然后从最后一个帧开始迭代到第一个帧。将每个帧复制到复制数组中的相反位置(即,最后一个原始帧在标题之后立即复制到复制数组中;倒数第二帧在第一帧之后复制,等等)。然后播放反转的文件即可。
因此,您不需要 javax.sound 库来执行此操作 - 您只需要能够复制和操作字节。仅供参考,并非所有 WAV 文件都是这样“规范”的(规范意味着 44 字节标头加上样本值,仅此而已)。 WAV 格式实际上是一种 RIFF 格式,这意味着理论上您需要对样本值进行更复杂的提取。在实践中(特别是如果您自己创建 WAV 文件),您通常可以采用我在此处描述的更简单的方法。
注意:如果您的声音是 MP3 文件,则反转是一项更复杂的任务,因为样本数据不会作为样本存储在 MP3 文件中。如果您使用的是 MP3,反转它们的一种方法是将它们转换为 WAV,然后反转 WAV 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)