2

WebAudioApi AudioContext 可以从MediaStreamSource创建一个源

  const {audioCtx} = this;
  const source = audioCtx.createMediaStreamSource(mediaStream);
  source.connect(audioCtx.destination);
  source.start(audioCtx.currentTime);

Audio-Element 通过captureStream()支持可访问的媒体流:

  const audio = new Audio();
  audio.src = src;
  const mediaStream = audio.captureStream();

正如您在文档中看到的那样,两个流 - 音频捕获流以及 createAudioStreamSource 的流参数都是 MediaStreams,为什么它不起作用。问题出在哪里,我该如何解决?

编辑:

问题是broser抛出这个错误:

× 未处理的拒绝(InvalidStateError):无法在“BaseAudioContext”上执行“createMediaStreamSource”:MediaStream 没有音轨

4

1 回答 1

1

您已将您的“src”附加到您的音频元素,但在对内容进行操作之前,您尚未检查内容是否已从服务器完全加载。如果流尚未完成下载到浏览器,则无法捕获流,有点像在完全在浏览器中之前无法显示图像源。任何针对源的进程都必须放在 onload 处理程序中。(并且您可能希望<source>在您的<audio>元素中使用一个元素。)

于 2018-10-12T12:27:21.637 回答