【发布时间】:2020-03-15 08:38:51
【问题描述】:
new MediaRecorder(stream[, options]);
我想记录用户的摄像头和音频
我需要在录音中将 song.mp3 混音到音轨中。
结果导出视频文件以通过链接下载。
但是 MediaRecorder 的第一个参数流可以实时修改吗?
但是当我使用 recoder.stop()
提示错误:无法在“MediaRecorder”上执行“stop”:MediaRecorder 的状态为“inactive”。
我的代码:
function getFileBuffer(filepath) {
return fetch(filepath, {method: 'GET'}).then(response => response.arrayBuffer())
}
function mp3play() {
getFileBuffer('song.mp3')
.then(buffer => context.decodeAudioData(buffer))
.then(buffer => {
console.log(buffer)
const source = context.createBufferSource()
source.buffer = buffer
let volume = context.createGain()
volume.gain.value = 1
source.connect(volume)
dest = context.createMediaStreamDestination()
volume.connect(dest)
// volume.connect(context.destination)
source.start(0)
const _audioTrack = stream.getAudioTracks();
if (_audioTrack.length > 0) {
_audioTrack[0].stop();
stream.removeTrack(_audioTrack[0]);
}
//
// console.log(dest.stream)
// console.log(dest.stream.getAudioTracks()[0])
// stream.addTrack(dest.stream.getAudioTracks()[0])
})
}
function startRecording() {
recorder = new MediaRecorder(stream, {
mimeType: 'video/webm'
})
recorder.start()
stopBtn.removeAttribute('disabled')
startBtn.disabled = true
}
【问题讨论】:
标签: mediarecorder getusermedia audiocontext web-mediarecorder mediarecorder-api