【问题标题】:Capture Audio Phonegap error code 3捕获音频 Phonegap 错误代码 3
【发布时间】:2014-01-13 19:12:40
【问题描述】:

我正在创建一个带有录音的应用程序,我尝试实现这个示例代码: http://docs.phonegap.com/en/3.3.0/cordova_media_capture_capture.md.html#capture.captureAudio

但是当单击按钮时出现错误:代码错误 3。根据文档,当您在录制任何内容之前退出录制应用程序时会出现此错误,但是当我单击按钮时,录制应用程序未启动,它直接运行到错误函数。

捕捉视频效果很好。

在 Phonegap Build 中使用 Phonegap 3.0.0 或 2.9.0。

代码:

<!DOCTYPE html>
<html>
<head>
<title>Capture Audio</title>

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="json2.js"></script>
<script type="text/javascript" charset="utf-8">

// Called when capture operation is finished
//
function captureSuccess(mediaFiles) {
    var i, len;
    for (i = 0, len = mediaFiles.length; i < len; i += 1) {
        uploadFile(mediaFiles[i]);
    }
}

// Called if something bad happens.
//
function captureError(error) {
    var msg = 'An error occurred during capture: ' + error.code;
    navigator.notification.alert(msg, null, 'Uh oh!');
}

// A button will call this function
//
function captureAudio() {
    // Launch device audio recording application,
    // allowing user to capture up to 2 audio clips
    navigator.device.capture.captureAudio(captureSuccess, captureError, {limit: 2});
}

// Upload files to server
function uploadFile(mediaFile) {
    var ft = new FileTransfer(),
        path = mediaFile.fullPath,
        name = mediaFile.name;

    ft.upload(path,
        "http://my.domain.com/upload.php",
        function(result) {
            console.log('Upload success: ' + result.responseCode);
            console.log(result.bytesSent + ' bytes sent');
        },
        function(error) {
            console.log('Error uploading file ' + path + ': ' + error.code);
        },
        { fileName: name });
}

</script>
</head>
<body>
    <button onclick="captureAudio();">Capture Audio</button> <br>
</body>

【问题讨论】:

  • 包括您在这个问题中使用的实际代码。
  • 我遇到了同样的错误。你解决了吗?
  • 我也有这个错误。
  • 我刚刚在Android中发现了同样的问题,有什么解决办法吗?
  • 还没有,根据 Phonegap 支持,Cordova 的人已经解决了这个问题,但是这个周末我又试了一次,仍然得到代码错误 3。

标签: android cordova


【解决方案1】:

这不是您问题的确切答案,而是一个可行的替代方案。

我没有使用 org.apache.cordova.media-capture,而是尝试了 org.apache.cordova.media

这是一个小例子:

function recordAudio() {
    var src = "myrecording.amr";
    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();

    // Stop recording after 10 seconds
    setTimeout(function() {
        mediaRec.stopRecord();
    }, 10000);
}

不幸的是,每台设备都使用自己的音频编解码器,而对于 Android,它是 AMR 编解码器。我可以使用MPC (Windows) 收听唱片。但如果你想上传文件并与其他用户分享,你必须convert it

如果您没有找到myrecording.amr 文件:它位于设备的根目录。我不知道如何将文件临时存储在现有的应用程序缓存文件夹本身中。

10 秒的录音大小

AMR 8000Hz mono 12kbps [Audio]

这是非常糟糕的质量。不幸的是,似乎不可能提高质量。

【讨论】:

    【解决方案2】:

    问题可能是没有应用程序正在处理 RECORD_SOUND Intent。

    我用过这个:

    https://play.google.com/store/apps/details?id=com.brightattic.soundrecorder&hl=en

    (除了在我的测试中有效之外,我没有任何认可)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 2015-01-19
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多