2013-02-10 61 views
0

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

按照科尔多瓦文档:

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

这似乎是错误的。根据该信息here,.AMR文件应该有这样开始的头:

#!AMR.4 

然而,audio files from my Nexus 7有标题是这样的:

....ftyp3gp4.... 

这似乎表明,他们应该有名为.3gp扩展。

此外,我不认为有任何格式的本机浏览器支持(科尔多瓦以外)。我发现一个JavaScript amr playback library,但它不能转换.3gp文件(即android生成的文件)。我敢打赌,可以使用类似的方法来解码.3gp文件,但是它似乎是一项艰巨的任务。我希望避免这种情况。如果有人愿意这样做,我会永远感激。

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

其中一种可能性是使用其他应用程序进行转换。例如,ffmpeg for android。我想避免这种情况,因为从Cordova启动intent需要一个Phonegap Build不提供的插件,用户将不得不处理安装和操作其他应用程序。

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

请帮忙。谢谢。

回答

0

问题是Android中没有包含很多编码编解码器。如果你看看this table,你可以看到在Android 4.1之前有什么可用的。 Phonegap使用AMR-NB作为3gpp容器中的编码类型。

我向你推荐的是在云中解码。