2013-05-16 3 views
0

Я знаю то, что это будет иметь простой ответ, но я не могу обернуть мою голову вокруг него для жизни меня ...Остановка запись аудио - PhoneGap

Я запись звука в моем приложении PhoneGap с помощью функции по умолчанию найти в документации API, и она отлично работает:

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 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

Смежные вопросы