我建立了与音频和视频建立的webRTC连接。
在来电方面,我想更改音频输入。
e.g。用户从下拉列表中更改audioinput
。
替换现有流的音轨的工作流程是什么?
我可以添加另一个音频曲目并使其中一个激活吗?怎么样?
看起来我可能需要再次调用getUserMedia
传递约束(?),据我所知,创建一个新的mediaStream
实例而不是修改现有的实例。
答案 0 :(得分:1)
对我们来说,看起来像这样:
const replaceTrack = async (peerConnection, oldSender, track, stream) => {
peerConnection.removeTrack(oldSender);
const newSender = peerConnection.addTrack(track, stream);
const localSdp = await peerConnection.createOffer({ offerToReceiveAudio: 1 });
await peerConnection.setLocalDescription(reply);
const response = await sendOffer(peerConnection.localDescription);
const description = new RTCSessionDescription(response);
peerConnection.setRemoteDescription(description);
return newSender;
}