【发布时间】:2021-09-18 04:01:05
【问题描述】:
我正在使用RecordRTC 进行音频和视频录制。问题是当我尝试先录制音频然后录制视频时。我收到这个错误。 MediaRecorder API seems unable to record mimeType: video/webm。
先录制视频后录制音频时没有发生该错误。
这是录音机代码
const startRecord = () => {
captureCamera(mic => {
const recordVideo = RecordRTC(mic, {
type: 'audio',
recorderType: StereoAudioRecorder,
mimeType: 'audio/wav'
});
recordVideo.mic = mic;
setTimeout(() => {
recordVideo.startRecording();
setRecorder(recordVideo);
}, 500);
});
};
const captureCamera = callback => {
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices
.getUserMedia({ audio: true })
.then(mic => {
callback(mic);
})
.catch(error => {
console.log(error);
});
}
};
这是录像机代码
const startRecord = () => {
captureCamera(camera => {
video.current.muted = true;
video.current.volume = 0;
video.current.srcObject = camera;
const recordVideo = RecordRTC(camera, {
type: 'video',
mimeType: 'video/webm;codecs=vp9',
recorderType: MediaStreamRecorder
});
recordVideo.camera = camera;
setTimeout(() => {
recordVideo.startRecording();
setRecord(recordVideo);
}, 500);
});
};
const captureCamera = callback => {
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices
.getUserMedia({ audio: true, video: true })
.then(camera => {
callback(camera);
})
.catch(error => {
console.log(error);
});
}
};
const stopRecord = () => {
record.stopRecording(stopRecordingCallback);
};
const stopRecordingCallback = () => {
getSeekableBlob(record.getBlob(), seekableBlob => {
const blob = new Blob([seekableBlob], { type: 'video/x-matroska;codecs=avc1,opus' });
const src = URL.createObjectURL(blob);
console.log('File URL', src);
});
record.camera.stop();
record.destroy();
setRecord(null);
};
【问题讨论】:
标签: reactjs recorder recordrtc