【问题标题】:Playing back 3gp audio recorded in Android Cordova elsewhere在其他地方播放在 Android Cordova 中录制的 3gp 音频
【发布时间】:2013-01-25 13:11:50
【问题描述】:

我希望能够在移动设备上的 Cordova 应用程序中录制音频,然后在桌面计算机上的网络应用程序中播放。但是,我遇到了一些令人讨厌的编解码器问题。

根据 Cordova 文档:

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

这似乎是错误的。根据here 的信息,.amr 文件的标题应以:

#!AMR.4

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

....ftyp3gp4....

这似乎表明它们应该具有 .3gp 扩展名。

此外,我认为这两种格式都没有本机浏览器支持(Cordova 之外)。我找到了一个 JavaScript amr playback library,但是它无法转换 .3gp 文件(即 android 生成的文件)。我敢打赌,可以使用类似的方法来解码 .3gp 文件,但这似乎是一项艰巨的任务。我希望避免这种情况。如果其他人愿意这样做,我将永远感激不尽。

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

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

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

请帮忙。谢谢。

【问题讨论】:

    标签: javascript cordova html5-audio amr 3gp


    【解决方案1】:

    问题在于 Android 中包含的编码编解码器并不多。如果您查看this table,您可以看到 Android 4.1 之前可用的内容。 Phonegap 使用 AMR-NB 作为 3gpp 容器中的编码类型。

    我给你的建议是在云端解码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多