无法接收来自其他用户的呼叫,Stream不显示WebRTC

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

Random Id生成连接功能

 function guid() {
                function s4() {
                    return Math.floor((1 + Math.random()) * 0x10000)
                            .toString(16)
                            .substring(1);
                }
                return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                        s4() + '-' + s4() + s4() + s4();
            }

    var id = guid();
    // Initialize a new peer and connect to our server
    var peer = new Peer(id, {
        host: 'webrtc-server-peerjs.herokuapp.com',
        port: 443,
        secure: true,
        debug: 1
    });
    peer.on('error', function (err) {
        console.log(err);
        alert(err);
    });

处理通话功能

function handleCall(call) {
            call.on('stream', function (remoteStream) {
              console.log(remoteStream);
                console.log('set thier');
                $('#call').hide();
                $('#their-video').show();
                //$('#their-video').prop('src', URL.createObjectURL(remoteStream));
                $('#their-video').srcObject=remoteStream;
            });
        }
    // Setting for chrome
    var constraints = window.constraints = {
        audio: true,
        video: true
    };
    navigator.mediaDevices.getUserMedia(constraints)
            .then(function (stream) {
                window.localStream = stream;
                //$('#my-video').prop('src', URL.createObjectURL(stream));
                $('#my-video').srcObject=stream;
                peer.on('call', function (call) {
                    call.answer(stream); // Answer the call with an A/V stream.
                    handleCall(call);
                });
            });

在页面加载上调用根函数

$(document).ready(function () {
    $('#number').text(id);
    $('#call').on('click', function () {
        $(this).button('loading');
        var id = prompt("Enter ID");
        var call = peer.call(id, window.localStream);
        handleCall(call);
    })
    })

一切似乎工作完美,但当我呼叫用户,我的流显示其他用户的流正确显示在我的屏幕上,但在另一侧用户无法看到我的流,在其他用户的屏幕上显示加载流然后得到错误在控制台

错误错误:( OperationError)无法设置本地商品sdp:调用错误状态:kHaveRemoteOffer

video-streaming webrtc videochat
1个回答
0
投票

您使用的是哪个peerjs版本?我修复了https://github.com/peers/peerjs/pull/430中的类似问题,因此升级到最新版本可能会解决您的问题。

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