【问题标题】:cordova-plugin-media: Parse ".amr" Audio File on nodejs servercordova-plugin-media:解析 nodejs 服务器上的“.amr”音频文件
【发布时间】:2015-11-17 12:44:46
【问题描述】:

我正在使用cordova-plugin-media 插件来录制来自 android 和 ios 设备的音频文件。 但是,android只允许录制以“.amr”结尾的文件,而iOS只支持“.wav”。 在 Android 上从 iOS 设备播放“.wav”是可行的,但是,iOS 不支持“.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】:

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

    www.cloudconvert.com 为“on-the-fly”转换视频/音频/img 文件提供了一个非常简单的 api。

    对于 node.js,我可以推荐一个 node 包: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) { ...
    

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多