cordova-plugin-media:解析nodejs服务器上的“.amr”音频文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cordova-plugin-media:解析nodejs服务器上的“.amr”音频文件相关的知识,希望对你有一定的参考价值。

我正在使用cordova-plugin-media插件来记录来自androidios设备的音频文件。但是,android只允许在“.amr”结尾记录文件,iOS在其他地方只支持“.wav”。但是,Android上的iOS设备播放“.wav”时,iOS不支持“.amr”文件。这就是为什么我必须以某种方式转换它们。

因为我找不到任何cordova-plugin转换客户端上的“.amr”文件,除了this one(它基于外部API并且极其缓慢+不完全工作 - 此外我不是做文件的粉丝 - 在客户端的转换),我正在寻找服务器端的解决方案:

是否有任何javascript库(最好是“nodejs-friendly”)允许我轻松地将“.amr”文件转换为“.wav”或“.mp3”(或类似 - 只能在iOS上播放)?尽管ffmpeg(我无法正确安装),我找不到任何解决方案...... :(

(在cordova-plugin-media中将mime-type设置为'audio / wav'会创建一个“损坏的”wav文件,在使用工具进一步分析时仍然是amr-encode ...)

我真的很感谢你的帮助!

答案

我提出了一个“解决方案”,如果其他人遇到与我相同的问题,我会与你分享:

www.cloudconvert.com为“即时”转换视频/音频/ img文件提供了一个非常简单的API。

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

我决定将.amr转换为.mp3而不是.wav(iOS“标准”),因为.mp3更小。为了能够在iOS设备上播放它,虽然必须从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) { ...

以上是关于cordova-plugin-media:解析nodejs服务器上的“.amr”音频文件的主要内容,如果未能解决你的问题,请参考以下文章

Ionic2:iOS 应用程序在使用cordova-plugin-media 录制音频并再次播放时崩溃

Android cordova-plugin-media MediaError.MEDIA_ERR_ABORTED = 1 与 http 资源

[No.8 jQuery源码解析—逐段解析

[No.6 jQuery源码解析—逐段解析

[No.4] jQuery源码解析—逐段解析

[No.5 jQuery源码解析—逐段解析