MediaRecorder - Как «очистить» данные блоба / создать новую запись? - PullRequest
0 голосов
/ 16 сентября 2018

Я использую PhoneGap MediaRecorder для записи звука на IOS. Там есть запись, остановка записи и кнопка воспроизведения. Он работает нормально, за исключением того, что когда я нажимаю «запись / остановка» снова, чтобы попытаться сделать другую запись, он по-прежнему воспроизводит первую сделанную мной запись.

Как перезаписывать предыдущую запись каждый раз, когда я нажимаю кнопку записи, или «очищать» данные большого двоичного объекта? Спасибо.

    document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log("device ready to go.");
    console.log(navigator.mediaDevices.getUserMedia);
}



navigator.mediaDevices.getUserMedia({
    'audio': true
}).then(function(mediastream) {
    var options = { mimeType : 'audio/wav'};
    var mediaRecorder = new MediaRecorder(mediastream, options);

//start recording

Appery("RecordAudioButton").click(function() {
               mediaRecorder.start();
        console.log(mediaRecorder.state);
               console.log("recorder started");

           });

//stop recording

Appery("StopRecord").click(function() {
              mediaRecorder.stop();
          console.log(mediaRecorder.state);
               console.log("recorder stopped");

           });

//play recording

mediaRecorder.ondataavailable = function(blob) {
    var audioURL = mediaRecorder.src;
    if(device.platform === 'iOS') {                 // iOS ; cordova-plugin-device required for this check
        Appery("audioPlayer").attr("src", audioURL);
    } else {
        var recordedChunks = [];
        recordedChunks.push(blob.data);
        audioURL.src = URL.createObjectURL(new Blob(recordedChunks));   // Android device
    }
};


});

1 Ответ

0 голосов
/ 08 августа 2019

Попробуйте установить для audioURL.src значение null в начале функции ondataavailable

...