【问题标题】:Appending .aac files in Java/Android在 Java/Android 中附加 .aac 文件
【发布时间】:2017-05-31 13:32:03
【问题描述】:

我对使用 Java 处理音频文件还很陌生,对 Android 也很陌生(我知道一些基础知识)。

我有两个使用 MediaRecorder 录制的 .aac 文件,我需要在录制完成后合并这两个文件。我想我会先在 Java 中尝试它,然后将它转移到 Android,因为很多看起来很相似?

我想知道实现这一目标的最佳方法是什么?到目前为止,我已经将 .aac 文件转换为字节数组并合并这些文件,但这只会产生第一个文件(来自第一个字节数组),文件大小更大,没有额外的音频。

我想这可能是由于音频标题?我是否应该找到一种方法来定位这些字节并将它们从第二个字节中删除(如果是的话,是否有解释标头位置的文档?)

另外,我还阅读了有关使用 .wavs 而不是使用 MediaRecorder 而是使用 AudioRecord,创建两个 PCM,连接然后转换为 .wav?然后我可以将该 .wav 转换为 .aac 吗?

最快的实现方式是什么?有没有人有任何额外的文档可以提供帮助?

【问题讨论】:

  • 通常将 2 个文件作为一个字节数组并将一个附加到另一个不会生成有效文件。你很幸运,即使是原始数据仍然可以播放。为此,您必须实际阅读 AAC 格式并学习如何操作它。或者找一个这样做的图书馆。
  • 我真的对将两者混合在一起并没有抱太大希望,但我在某处读到它们是原始音频文件,并得到了一两个有趣的想法。谢谢。
  • wav 在您通过标题后实际上是原始音频。当然,wav 格式有数百种变体。但是,如果您有未标头的原始 wav 数据,则可以将这两者结合起来并重新编码为 aac。
  • 谢谢你,你让我走上了正确的道路。我最终使用了 AudioRecord 并将文件连接起来。我只需要摆弄 WAV 标头以使声音听起来正常(这听起来有点机器人,现在加速了)。

标签: java android audio


【解决方案1】:

感谢 Gabe,让我走上了正确的道路。

最后我放弃了使用 .aac 并尝试删除标题。我使用 AudioRecord 录制 .pcm 文件,然后将它们连接起来并保存为 .wav。

我确实为声音听起来快进和失真而苦恼,最初认为这取决于采样率,事实证明我正在将丢失信息的短字节转换为字节,从而加快速度和失真的原因。

希望这对某人有所帮助,我最终可能会添加一些 .aac 编码库以减小大小。

我发现一些链接对我的旅程很有帮助。

https://github.com/newventuresoftware/WaveformControl

Android AudioRecord example

How to convert .pcm file to .wav or .mp3?

http://www.topherlee.com/software/pcm-tut-wavformat.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 2010-09-27
    • 2015-08-27
    • 2011-05-31
    相关资源
    最近更新 更多