【问题标题】:How to Pause a Recording that is currently being recorded using getusermedia?如何暂停当前正在使用 getusermedia 录制的录制文件?
【发布时间】:2019-04-24 06:41:09
【问题描述】:

我正在使用 getusermedia 和 webaudioAPI 录制来自用户的音频,我能够录制并将录制的数据保存到服务器然后我尝试暂停/恢复录制以下代码是我尝试过的,但它显示以下错误。

1>InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable at function resumeRecording()
var recordButton, stopButton, recorder;


window.onload = function () {

    navigator.mediaDevices.getUserMedia({
        audio: true
    })
    .then(function (stream) {
        if (recorder == null) {
            recorder = new MediaRecorder(stream);
            recorder.addEventListener('dataavailable', onRecordingReady);
        }

        }).catch(function (err) {
            alert(err)
        });;

};


function startRecording() {
  //  recordButton.disabled = true;
    //  stopButton.disabled = false;
    recorder.start();

}

function stopRecording() {
   // recordButton.disabled = false;
  //  stopButton.disabled = true;
    recorder.stop();


}

function pauseRecording()
{
    if (recorder.recording) {
        recorder.stop();

    }
}
function resumeRecording()
{

        recorder.start();

}

按钮点击:

   $(document).on('click','.btnPause',function(){

            x(this.title);
            $(this).html('Resume');
            $(this).removeClass('btnPause');
            $(this).addClass('btnResume');
            pauseRecording();
            return false;

        });
        $(document).on('click','.btnResume',function(){
            x(this.title);
            $(this).html('Resume');
            $(this).removeClass('btnResume');
            $(this).addClass('btnPause');
            resumeRecording();      
            return false;
        });

我怎样才能做到这一点?需要你的帮助,如果有人能帮我解决这个问题,我将不胜感激。

【问题讨论】:

    标签: javascript html asp.net


    【解决方案1】:

    这是我克服暂停和恢复的情况的方法,以前对于 mediarecorderAPI 不可用,但现在可以使用 MediaRecorder.Pause()MediaRecorder.Resume() 函数用于暂停和恢复

     $(document).on('click','.btnPause',function(){
    
    
           x(this.title);
            if (recorder.state === "recording") {
    
                recorder.pause();
                $(this).html('Resume');
              //  Console.log(recorder.state);
                // recording paused
            } else if (recorder.state === "paused") {
                $(this).html('Pause');
                recorder.resume();
                // resume recording
            }
            return false;
    
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 2012-08-26
      • 1970-01-01
      相关资源
      最近更新 更多