android - Phonegap 媒体记录 mp3 文件损坏

标签 android cordova mp3 media

我正在使用 phonegap 媒体将音频录制为 mp3。录制后,它在我的 Android 上播放良好,在 Windows Media Player 上播放良好。但是,当我在浏览器中尝试时,它说文件已损坏。

确切错误:

Chrome: "We cannot play this audio file right now."

Firefox: "Video can't be played because the file is corrupt."

IE: Opens the file in WMP and it plays.

我使用了示例中的代码。 http://docs.phonegap.com/en/2.6.0/cordova_media_media.md.html#media.startRecord

// Record audio
// 
function recordAudio() {
    var src = "myrecording.mp3";
    var mediaRec = new Media(src,
        // success callback
        function() {
            console.log("recordAudio():Audio Success");
        },

        // error callback
        function(err) {
            console.log("recordAudio():Audio Error: "+ err.code);
        });

    // Record audio
    mediaRec.startRecord();
}

提前致谢。

编辑:

这是一个例子。 http://blrbrdev.azurewebsites.net/voice/blrbr_130419951008830874.mp3 这在 WMP 中播放,但在浏览器中不播放。

最佳答案

您提供的 mp3 文件似乎不是 mp3 文件。 我在下面附上了文件的详细信息。如您所见,它是封装在 MPEG-4/3GPP 容器中的 AMR 编解码器。我会说目前没有浏览器可以本地解码(但像 VLC 这样的软件可以播放它)。

如果您尝试在浏览器中播放音频文件(例如 HTML5 音频),您需要提供兼容的格式。在这里查看 compatibility table .

这是预期的行为 stated here :

Android devices record audio in Adaptive Multi-Rate format. The specified file should end with a .amr extension.

如果您想在浏览器/HTML5 音频标签中播放它,您需要对文件进行后处理以将其转换为有效的 mp3 文件(添加 ogg 音频以实现完整的浏览器覆盖)。服务器端这可以通过一个名为 ffmpeg 的程序来完成。我不是 Phonegap 开发专家,所以我不能向您指出一个有效的库来执行该客户端,但也许已经有人在 SO 上问过这个问题。

文件规范:

General 
Complete name : C:\wamp\www\stack\sample\thisTest.mp3  
Format : MPEG-4 
Format profile : 3GPP Media Release 4 
Codec ID : 3gp4 
File size : 10.5 KiB 
Duration : 4s 780ms 
Overall bit rate mode : Constant 
Overall bit rate : 18.0 Kbps 
Performer : LGE 
Encoded date : UTC 2014-04-15 00:24:57 
Tagged date : UTC 2014-04-15 00:24:57 

Audio 
ID : 1 
Format : AMR 
Format/Info : Adaptive Multi-Rate 
Format profile : Narrow band 
Codec ID : samr 
Duration : 4s 780ms 
Bit rate mode : Constant 
Bit rate : 12.8 Kbps 
Channel(s) : 1 channel 
Sampling rate : 8 000 Hz 
Bit depth : 13 bits 
Stream size : 7.47 KiB (71%) 
Title : SoundHandle 
Writing library :  
Language : English 
Encoded date : UTC 2014-04-15 00:24:57 
Tagged date : UTC 2014-04-15 00:24:57 

关于android - Phonegap 媒体记录 mp3 文件损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23095785/

相关文章:

angularjs - 使用 Cordova 和 Angularjs : 401 unauthorized error 登录 Twitter

java - 即使在 Windows 8 Enterprise 上设置了路径,也无法运行 JAVA - Cordova

c++ - 在 Python 或 C++ 中单声道播放 Mp3

Android:没有找到处理 Intent 错误的 Activity ?将如何解决

cordova - Ionic-Firebase 应用程序错误 : Cannot find module '../plugman/platforms/ios'

android - 在 ubuntu 上安装 ADT - adb & fastboot 不起作用?

stream - 计算出字节内容

actionscript-3 - 如何在 ActionScript 中拆分音频文件

c# - 如何在 C# Socket 上从 android 连续接收位图?

android - 使用 Parceler 保存 Android Activity 或 Fragment 状态