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

问题描述 投票:6回答:1

我正在使用cordova-plugin-media插件来记录来自android和ios设备的音频文件。但是,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 ...)

我真的很感谢你的帮助!

android node.js cordova wav amr
1个回答
3
投票

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

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) { ...
© www.soinside.com 2019 - 2024. All rights reserved.