0

我已经使用 agora CDN 在我的 angular 5 应用程序中实现了 agora 代码。摄像头正在打开,但一对一用户看不到对方的视频帧。为什么?

变种自我=这个;var client = AgoraRTC.createClient({ mode: 'rtc', codec: "h264" });

client.init('我的钥匙', function () {

console.log("AgoraRTC client initialized");
client.join(null, 'TestChanel', null, function (uid) {

    console.log("User " + uid + " join channel successfully");
    self.uId = uid;

    var localStream = AgoraRTC.createStream({
        // streamID: uid,
        // audio: true,
        //  video: true,
        //  screen: false,

        streamID: uid,
        audio: true,
        cameraId: self.deviceId,
        // microphoneId: self.microphone,
        video: true,
        screen: false,
        extensionId: 'minllpmhdgpndnkomcoccfekfegnlikg',
    }
    );

    localStream.init(function () {

        console.log("getUserMedia successfully");
        localStream.play('agora_local');
       // localStream.play('video-caller');

        client.publish(localStream, function (err) {

            console.log("Publish local stream error: " + err);
        });

        client.on('stream-published', function (evt) {

            console.log("Publish local stream successfully");
        });


        client.on('stream-added', function (evt) {

            var stream = evt.stream;
            console.log("New stream added: " + stream.getId());

            client.subscribe(stream, function (err) {
                console.log("Subscribe stream failed", err);
            });
        });
        client.on('stream-subscribed', function (evt) {

            var remoteStream = evt.stream;
            console.log("Subscribe remote stream successfully: " + remoteStream.getId());
            remoteStream.play('agora_remote' + remoteStream.getId());
        })






    }, function (err) {

        console.log("getUserMedia failed", err);
    });

}, function (err) {

    console.log("Join channel failed", err);
});

},函数(错误){

console.log("AgoraRTC client init failed", err);

});

4

1 回答 1

1

有几件事可以帮助您解决此问题:

  1. 利用 Typescript 类型来帮助调试。您可以使用命令安装 SDK 的基本类型库npm install --save-dev @types/agora-rtc-sdk,以提供更多的调试功能。
  2. 在尝试远程流之前设置超时或使用计时器,这有时有助于确保播放流。rxjsplay
  3. cameraId测试不在方法中分配 acreateStream()或使用this代替self- 您可能因此遇到 Angular 问题。

还要确保在未来的测试中,两个用户uid使用的 injoin()类型相同。我之前遇到过这个问题,当一个客户传入 anumber而另一个客户传入string.

如果您使用 Chrome 在两个用户之间进行测试,那么这可能不是浏览器问题,但是,根据 SDK 版本,您应该查看一些已知错误。

于 2019-04-12T20:40:49.270 回答