2013-05-16 73 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