音频不会传输给 webrtc 连接中的其他用户,它只是返回到同一用户,我应该怎么做才能正常工作?

问题描述 投票:0回答:1

我正在使用 Reactjs、Socketio 和 WebRTC 构建一个实时点对点视频通话应用程序,网址为 http://p2prealtime.vercel.app/。然而, 我在音频方面遇到问题 - 它不会发送给其他用户,但会循环回发送者。我该如何解决这个问题?

完整代码链接:https://dub.sh/H6ZHrth

我尝试过的代码:

window.navigator.mediaDevices
  .getUserMedia({
    video: true,
    audio: true,
  })
  .then(async (stream) => {
    setVideoStream(stream);
  });

我已添加此代码来获取音频和视频,并将音频流添加到 PC,但问题仍然存在。

reactjs webrtc real-time
1个回答
0
投票

在 pc.addTrack 函数中包含来自 videoStream 的音轨

pc.addTrack(videoStream.getVideoTracks()[0]);
pc.addTrack(videoStream.getAudioTracks()[0]);

也在 pc.ontrack 函数中处理视频和音频轨道

pc.ontrack = (e) => {
  const tracks = e.streams[0].getTracks();
  tracks.forEach((track) => {
    if (track.kind === "video") {
      setRemoteVideoStream(new MediaStream([track]));
    } else if (track.kind === "audio") {
      // Handle the remote audio stream here
    }
  });
};

然后修改 pc.onicecandidate 函数以发出音频和视频的 ICE 候选者

pc.onicecandidate = ({ candidate }) => {
  s.emit("iceCandidateReply", { candidate });
};

完成所有这些服务器端代码后,请确保音频和视频的 ICE 候选项得到正确处理并传输给远程用户。

© www.soinside.com 2019 - 2024. All rights reserved.