【发布时间】:2013-01-25 13:11:50
【问题描述】:
我希望能够在移动设备上的 Cordova 应用程序中录制音频,然后在桌面计算机上的网络应用程序中播放。但是,我遇到了一些令人讨厌的编解码器问题。
根据 Cordova 文档:
Android 设备以自适应多速率格式录制音频。这 指定文件应以 .amr 扩展名结尾。
这似乎是错误的。根据here 的信息,.amr 文件的标题应以:
#!AMR.4
但是,audio files from my Nexus 7 有这样的标题:
....ftyp3gp4....
这似乎表明它们应该具有 .3gp 扩展名。
此外,我认为这两种格式都没有本机浏览器支持(Cordova 之外)。我找到了一个 JavaScript amr playback library,但是它无法转换 .3gp 文件(即 android 生成的文件)。我敢打赌,可以使用类似的方法来解码 .3gp 文件,但这似乎是一项艰巨的任务。我希望避免这种情况。如果其他人愿意这样做,我将永远感激不尽。
如果无法更改 Cordova Media API 生成的格式,则需要使用解码器。一个纯 JavaScript 解码解决方案将是理想的,闪存转换器几乎一样好。我考虑过的其他可能性存在一些问题:
一种可能性是使用另一个应用程序进行转换。例如,ffmpeg for android。我想避免这种情况,因为从 Cordova 启动意图需要一个 Phonegap Build 不提供的插件,并且用户必须处理安装和操作另一个应用程序。
另一种可能性是在云端进行解码。如果可能的话,我不想运行我自己的任何网络服务。我尝试了 encoding.com 并且能够成功地将我的一个音频文件转换为 mp4,但是他们还没有 Dropbox 文件监视支持。如果音频文件需要在到达之前加密,例如由于 HIPAA,那么云解码会变得非常复杂,如果不是不可能的话。
请帮忙。谢谢。
【问题讨论】:
标签: javascript cordova html5-audio amr 3gp