0

我知道这将有一个简单的答案,但我似乎无法在我的一生中围绕它......

我正在使用 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;
}

但是,我花了几乎一整天的时间试图找出一种方法来手动停止音频的录制,一旦它已经开始......有什么想法吗?

在此先感谢您的帮助!

4

1 回答 1

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();
 } 
于 2013-05-17T12:54:00.523 回答