new MediaRecorder(stream [,options])流可以实时修改吗?

问题描述 投票:0回答:1

新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混合到录制的音轨中。并导出视频文件以通过链接下载。但是...

mediarecorder getusermedia audiocontext web-mediarecorder mediarecorder-api
1个回答
0
投票

[不,我们仍然无法录制在录制开始后其轨道已更改的MediaStream,这样做会stop() MediaRecorder。 Here is a very related Q/A更多有关录制视频的信息。

© www.soinside.com 2019 - 2024. All rights reserved.