3

我正在 Android 中创建一个应用程序。我的应用程序录制音频并将其存储在 SD 卡上
并以列表格式显示。我做了这一切,但我需要编辑这个音频,就像假设我打开录音
然后我需要从结束重新开始这个录音并能够在那个录音中附加音频。

喜欢:假设我的重新编码“MyRecord01”时间是 04.06 秒,我想在录音中添加更多音频,
那么它必须从 04.07 开始并添加一些音频。

我搜索了很多,但没有找到任何相关的东西。请引导我到任何链接或任何参考。
或者给我任何提示。
提前致谢。

4

2 回答 2

1

是您需要的代码。希望对你有效。

如果我发现您的问题有误,请随时发表评论并告诉我。

于 2012-08-13T14:01:15.757 回答
0

这并不太难。关键是要了解您录制的音频是如何格式化的。如果您使用未压缩的格式,如 WAV 或 AIFF,则最简单。这是 WAV 文件格式的(众多)解释之一:https ://ccrma.stanford.edu/courses/422/projects/WaveFormat/

如果数据块是最后一个,则大多数 WAV 文件都可以轻松附加(这可能是格式的要求,我无法确定)。如果它不是最后一个,您首先必须复制文件并对其进行修改,以便数据块是最后一个。如果文件很大,这可能是一个耗时的步骤。

完成后,您只需将新音频数据附加到数据块并更新文件中其他位置的一些数据,例如数据块大小(在数据块中)、块大小(在 RIFF 描述符中)和Subchunk1 大小(在 fmt 块中)。(一旦您阅读了解释,这一切对您来说都会更有意义。)您可能希望在追加时对这些数据做一些事情,以便在您的应用程序在追加期间崩溃的情况下很容易修复——您不需要想要破坏用户的数据。

AIFF 的流程类似,但细节上有所不同。

对于 MP3,我不能 100% 确定这将如何工作。如果内存为该过程提供服务,则在概念上更容易,因为 MP3 文件被构造为一系列独立的块,并且每个块都有自己的迷你标头。从理论上讲,您可以附加更多块。但实际上,由于压缩和 ID3 标签之类的原因,它会变得更加复杂。

于 2012-08-06T01:04:20.823 回答