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 に答える