首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑音频/重新录制文件的一部分

编辑音频/重新录制文件的一部分
EN

Stack Overflow用户
提问于 2011-11-10 02:33:32
回答 1查看 2.7K关注 0票数 2

我希望用户能够在应用程序中录制音频,然后能够选择文件的一部分,并重新录制它。例如,也许他们最初录制"How now,brown cow“,然后选择结尾,然后重新录制"frown sow”。这将被合并到初始文件中,然后是"How now,frown sow“。

这似乎比我预想的要困难得多。我可以对3GP格式的文件执行此操作吗?如果没有,我如何将它们转换成我需要的格式?

我希望能够说:“获取这个刚刚录制的音频文件。它将填充另一个媒体文件的5秒到10秒的部分,现在保存新的编辑后的文件。”我认为毫秒、帧、样本和字节之间的转换可能会使事情变得更加复杂。

我正在研究Ringdroid应用程序(我非常感谢它是开源的!)它至少做了一些类似的事情,但非常复杂,几乎没有评论……希望它比我需要的复杂得多。

我确实看到了另一个线程,但即使它是我需要的,我也不相信这些类是安卓的一部分:Saving part of an audio file (Java)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-24 00:48:37

我终于可以编辑3GP文件的一部分了。

我使用了来自RingDroid的CheapAMR (也管理3GP)和CheapSoundFile类,以及一个新的"AudioFileHandler“类。

一路走来,我学到了一些重要的经验:

  • 一个3GP文件被分成几个“盒子”。每个框都包含一个值,说明框有多长,然后是一些数据。有一个包含3GP文件元数据的"ftyp“框,一个包含实际音乐数据的"mdat”框,以及一个包含电影数据的"moov“框(即使是纯音频文件也有这个框。”
  • 文件中框的顺序,以及它们各自的大小,从安卓设备到安卓设备都会发生变化。
  • 音乐数据本身被分成“帧”(在我使用3GP测试时为32字节,但我猜它可能有不同的长度)。
  • 十六进制编辑器是非常有用的工具,当做这种coding
  • RingDroid有一些错误,它不能准确地报告帧的数量等,所以黑客不得不写这
  • 工作时,更改的音频文件的长度,确保留下的ftyp和moov框不动,并更改前四个字节的文件中的"mdat“。这表示mdat框的长度(以字节为单位),包括mdat标头本身的8个字节。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8069769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档