从 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"
}
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"
}