从 Web SDK 到 iOS SDK 的视频通话

Videocall from Web SDK to iOS SDK

WebSDK 没有收到来自 iOSSDK

的已发布流

目前,我已经完成了基于 WebSDK 的视频通话。 User1 加入 chatX 并发布他的流。 User2 通过 chatX 中的 "stream-added" 事件接收此流并成功订阅它。 但是,当 user1 从 iOS App.

加入视频聊天时,"stream-added" 事件不会触发
        client.on('stream-added', function (evt) {
            var stream = evt.stream;
            console.log("New stream added: " + stream.getId());
            console.log("Subscribe ", stream);
            client.subscribe(stream, function (err) {
                console.log("Subscribe stream failed", err);
            });
        });

        client.on('stream-subscribed', function (evt) {
            var stream = evt.stream;
            console.log("Subscribe remote stream successfully: " + stream.getId());
            if ($('#videochat-remoteVideo #agora_remote'+stream.getId()).length === 0) {
                $('#videochat-remoteVideo').append('<div id="agora_remote'+stream.getId()+'"></div>');
            }
            remoteBigLocalSmall();
            stream.play('agora_remote' + stream.getId());
        });

iOS 应用程序收到从 Web 发布的流,而 Web 客户端不接收来自 iOS 客户端的流。

我的实施可能有什么问题?如何从 iOS 客户端接收流?

更新: 加入聊天码:

user_id = '111';
client.join(channel_key, videochat_id, user_id, function(uid) {
...

我已将 user_id 类型从字符串更改为整型,现在可以使用了。我不明白为什么,因为文档允许字符串 uid:

join(tokenOrKey: string | null, channel: string, uid: number | string | null, onSuccess?: function, onFailure?: function): void

将 client.join 方法参数 uid 从字符串更改为整数解决了问题

您遇到的问题与您使用了错误的 API 方法有关。您使用的 joinChannelByToken 只适用于整数值,而您应该使用 joinChannel(byUserAccount: ...) 因为它需要一个字符串 uid 作为参数。

let myStringId = "someStringId"
agoraKit.joinChannel(byUserAccount: myStringId, token: nil, channelId: "demoChannel1") { (sid, uid, elapsed) in
    // Did join channel "demoChannel1"
}