Аудио из RTCPeerConnection не слышно после обработки в AudioContext - PullRequest
1 голос
/ 16 апреля 2019

у меня активен RTCPeerConnection. Я хочу обработать это аудио. Я создаю new AudioContext(), а затем новые узлы: MediaStreamAudioSourceNode до MediaStreamAudioDestinationNode

После подключения MediaStreamAudioSourceNode к MediaStreamAudioDestinationNode Не слышно звука.

MediaStreamAudioDestinationNode подключен к элементу Audio.

  • Я пытался подключиться напрямую MediaStream от RTCPeerConnection до Audio, и это работает

  • Я также пытался подключить MediaStreamAudioSourceNode.mediaStream к Audio элементу, и он также работает.

  • Я подключился MediaStream, возвращаемый getUserMedia(), и он работает даже с MediaStreamAudioDestinationNode

Похоже, что только MediaStream из RTCPeerConnection не работает с MediaStreamAudioDestinationNode.

  function play(eventWebRtcPeerConnection) {
    const audio = new Audio()
    const ctx = new AudioContext();

    let mediaStream = new MediaStream();
    eventWebRtcPeerConnection.streams[0].getAudioTracks().forEach(track => mediaStream.addTrack(track));

    // create source and destination and connect them
    const msSource = ctx.createMediaStreamSource(mediaStream);
    const msDestination = ctx.createMediaStreamDestination();
    msSource.connect(msDestination);

    // play media stream on Audio object
    audio.srcObject = msDestination.stream; // does not work
    // audio.srcObject = msSource.mediaStream; // works

    audio.oncanplay = async () => {
      audio.muted = false;
      await audio.play();
    }

  }

Я ожидаю услышать звук после подключения MediaStreamAudioSourceNode к MediaStreamAudioDestinationNode.

...