WebRTC连接后对方看不到我的视频流是怎么回事?

梓宸~ 阅读 20

我用Vue写了个简单的WebRTC视频通话功能,本地预览正常,但对方收不到我的视频流。控制台没报错,SDP交换也完成了,就是对方画面黑屏。是不是addTrack的顺序有问题?

这是我的关键代码:

<template>
  <video ref="localVideo" autoplay muted />
</template>

<script>
export default {
  async mounted() {
    const stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true });
    this.localStream = stream;
    this.$refs.localVideo.srcObject = stream;
    
    // 创建peerConnection后直接addTrack
    stream.getTracks().forEach(track => {
      this.peerConnection.addTrack(track, stream);
    });
  }
}
</script>
我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
开发者瑞瑞
啊这个坑我踩过...你addTrack之前要先设置peerConnection的ontrack事件处理。试试这样改:

this.peerConnection.ontrack = (event) => {
if (!this.remoteVideo.srcObject) {
this.remoteVideo.srcObject = new MediaStream();
}
this.remoteVideo.srcObject.addTrack(event.track);
};


还有检查下对方有没有绑定remoteVideo的ref
点赞
2026-03-05 12:05