新MediaRecorder(stream [,选项]);
我要记录用户的摄像机和音频
我需要在录制时将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
}
new MediaRecorder(stream [,options]);我想录制用户摄像机和音频,我需要将song.mp3混合到录制的音轨中。并导出视频文件以通过链接下载。但是...
[不,我们仍然无法录制在录制开始后其轨道已更改的MediaStream,这样做会stop()
MediaRecorder。 Here is a very related Q/A更多有关录制视频的信息。