cordova-plugin-media:在nodejs服务器上parsing“.amr”audio文件

我正在使用cordova-plugin-media插件来logging来自android和ios设备的audio文件。 不过,android只允许以“.amr”结尾的文件进行录制,其他的iOS只支持“.wav”。 在Android上的iOS设备上播放“.wav”,iOS不支持“.amr”文件。 这就是为什么我必须以某种方式转换它们。

由于我找不到任何cordova插件转换客户端上的“.amr”文件,除了这个 (这是基于外部的API和extreeeemly缓慢+不完全工作 – 此外,我不是一个粉丝文件转换在客户端),我在服务器端寻找一个解决scheme:

是否有任何JavaScript的库(最好,如果它是“nodejs友好的”),让我轻松转换“.amr”文件为“.wav”或“.mp3”(或类似 – 只能在iOS上播放)? 尽pipeffmpeg(我无法正常安装),我找不到任何解决scheme… 🙁

(在cordova-plugin-media中将MIMEtypes设置为“audio / wav”会创build一个“损坏的”wav文件,当使用工具进一步分析时,仍然会进行编码)

我真的很感谢你的帮助!

我没有任何线索为什么我的问题downvoted – 这个audio问题似乎是一个大问题…

不过,我想出了一个“解决scheme”,如果有人遇到同样的问题,我会和你分享一下:

http://www.cloudconvert.com为“即时”转换video/audio/ img文件提供了一个非常简单的API。

对于node.js,我可以推荐一个节点包: https : //github.com/cloudconvert/cloudconvert-node

我决定将.amr转换成.mp3和现在的.wav(iOS“标准”),因为.mp3更小。 为了能够在iOS设备上播放,尽pipe必须从github上描述的(手动)示例中稍微调整比特率。 确保将以下选项传递给您的转换过程:

ccprocess.start({ outputformat: 'mp3', input: 'download', file: 'path-to-your-file', converteroptions: { audio_bitrate: "721", audio_frequency: "44100", audio_qscale: -1 } }, function (err, ccprocess) { ... 

快乐编码/转换大家;-)

Interesting Posts