停止录制音频 - PhoneGap

时间:2013-05-16 20:54:54

标签: cordova

我知道这个事实会有一个简单的答案,但我似乎无法在我的生活中绕过它......

我正在使用API​​文档中的默认功能在我的PhoneGap应用中录制音频,并且工作正常:

    var audio_name = '1_' + Math.round(new Date().getTime()/1000) + '.mp3';

   function recordAudio() {

    var src = audio_name;
    var mediaRec = new Media(src, onSuccess(src), onError);

    // Record audio
    mediaRec.startRecord();

    // Stop recording after 10 sec
    var recTime = 0;
    var recInterval = setInterval(function() {
        recTime = recTime + 1;
        setAudioPosition("Recording Audio - " + recTime + " sec");
        if (recTime >= 3) {
            clearInterval(recInterval);
            mediaRec.stopRecord();
            setAudioPosition("Recording Saved As " + src);
        }
    }, 1000);
}

// onSuccess Callback
//
function onSuccess(src) {
    console.log("recordAudio():Audio Success" + src);
}

// onError Callback 
//
function onError(error) {
    alert('code: '    + error.code    + '\n' + 
          'message: ' + error.message + '\n');
}

// Set audio position
// 
function setAudioPosition(position) {
    document.getElementById('audio_position').innerHTML = position;
}

然而,我花了很多时间试图找出一种方法来手动停止音频录制一旦它已经开始......任何想法?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我只留下了所需的方法。您需要呼叫的唯一线路是mediaRec.stopRecord();,它将停止录制。

假设您想在用户点击停止按钮时停止它(因为您没有指定何时停止它):

设置你的div:

<div id='startButton'>START</div>
<div id='stopButton'>STOP</div>

分配点击事件:

window.getElementById("startButton").onClick = recordAudio; //note you have no () here.
window.getElementById("stopButton").onClick = stopRecording; //note you have no () here.

这个开始你的音频:

 function recordAudio() {

    var src = audio_name;
    var mediaRec = new Media(src, onSuccess(src), onError);    
    // Record audio
    mediaRec.startRecord();

}

这个阻止它:

 function stopRecording(){
            //stop record
            mediaRec.stopRecord();
 }