2013-05-16 101 views
0

我知道一個事實,這將有一個簡單的答案,但我似乎無法換我的頭周圍爲我的生活......停止錄製音頻 - PhoneGap的

我錄製音頻在使用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

我只剩下所需的方法。唯一需要撥打的電話號碼是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(); 
} 
+0

我的朋友,三江源這麼多。我不得不做一些小的調整('mediaRec'的值必須是這個解決方案工作的全局變量),但是一旦實現它,它就會起作用。再一次,你是一位救生員,非常感謝! –

+1

沒有問題!很高興我能有一些幫助! – caiocpricci2