我正在使用getusermedia和webaudioAPI记录来自用户iam的音频,该用户能够记录并将记录的数据保存到服务器,然后我尝试暂停/恢复记录以下代码,这是我尝试过的操作,但它显示以下错误。
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;
});
我该如何实现?需要您的帮助,如果有人可以帮助我,我将很感激。
答案 0 :(得分:0)
这是我克服这种情况的方法,暂停和恢复以前无法用于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;
});