0

我希望能够在移动设备上的 Cordova 应用程序中录制音频,然后在 Web 应用程序中的台式计算机上播放。但是,我遇到了一些令人讨厌的编解码器问题。

根据科尔多瓦文档:

Android 设备以自适应多速率格式录制音频。指定的文件应以 .amr 扩展名结尾。

这似乎是错误的。根据此处的信息,.amr 文件应具有以下开头的标题:

#!AMR.4

但是,我的 Nexus 7 中的音频文件具有如下标题:

....ftyp3gp4....

这似乎表明它们应该具有 .3gp 扩展名。

此外,我认为这两种格式都没有本机浏览器支持(Cordova 之外)。我找到了一个 JavaScript amr 播放库,但是它不能转换 .3gp 文件(即 android 生成的文件)。我敢打赌,可以使用类似的方法来解码 .3gp 文件,但这似乎是一项艰巨的任务。我希望避免这种情况。如果有人愿意这样做,我将永远感激不尽。

如果无法更改 Cordova Media API 生成的格式,则需要解码器。一个纯 JavaScript 解码解决方案将是理想的,闪存转换器几乎一样好。我考虑过的其他可能性有一些问题:

一种可能性是使用另一个应用程序进行转换。例如,适用于 android 的 ffmpeg。我想避免这种情况,因为从 Cordova 启动意图需要一个 Phonegap Build 不提供的插件,并且用户必须处理安装和操作另一个应用程序。

另一种可能性是在云端进行解码。如果可能的话,我不想运行我自己的任何网络服务。我尝试了 encoding.com 并且能够成功地将我的一个音频文件转换为 mp4,但是他们还没有 Dropbox 文件监视支持。如果音频文件在到达之前需要加密,例如因为 HIPAA,那么云解码会变得非常复杂,如果不是不可能的话。

请帮忙。谢谢你。

4

1 回答 1

0

问题是 Android 中包含的编码编解码器并不多。如果您查看此表,您可以看到 Android 4.1 之前可用的内容。Phonegap 使用 AMR-NB 作为 3gpp 容器中的编码类型。

我给你的建议是在云端解码。

于 2013-02-11T15:31:09.907 回答