WebRTC - 如何更改现有流的音轨

时间:2016-10-03 12:07:15

标签: javascript webrtc

我建立了与音频和视频建立的webRTC连接。

在来电方面,我想更改音频输入

e.g。用户从下拉列表中更改audioinput

替换现有流的音轨的工作流程是什么?

我可以添加另一个音频曲目并使其中一个激活吗?怎么样?

看起来我可能需要再次调用getUserMedia传递约束(?),据我所知,创建一个新的mediaStream实例而不是修改现有的实例。

1 个答案:

答案 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;
}