我希望能够在移动设备上的 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,那么云解码会变得非常复杂,如果不是不可能的话。
请帮忙。谢谢你。