у меня активен 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
.