我正在使用OpenTok api进行一对一视频会议,是否有任何方法可以将其用于实时流,因此在我的情况下,只有一个用户将在会话中发布流,其他每个用户都将连接到该流。
但是它需要为每个流添加Publisher元素,因此如何在不发布流的情况下连接到单个用户。
如果解决方案有一个例子,我将不胜感激。
最佳答案
您只需要为“发布用户”和所有其他用户提供2个不同的脚本(在2个不同的页面上)。
“发布用户”将具有连接到会话然后发布流的代码。例:
var session = OT.initSession(apiKey, sessionId);
var publisher = OT.initPublisher('publisher', function(error) {
if (error) return alert('please reload and allow permission for your camera and mic');
session.connect(token, function(error) {
if (error) return alert('session connection error: ' + error.message);
session.publish(publisher);
});
);
所有其他用户将具有连接到会话并订阅流的代码。例:
var session = OT.initSession(apiKey, sessionId);
session.on('streamCreated', function(event) {
session.subscribe(event.stream, 'subscriber', function(error) {
if (error) return alert('stream subscriber error:' + error.message);
});
});
session.connect(token, function(error) {
if (error) return alert('session connection error: ' + error.message);
});
另外,请注意,与许多用户进行的会话应采用mediaMode =“ routed”,以帮助扩展质量。即使在路由会话中,拥有太多用户的广泛连接(带宽,延迟,解码能力)也将负面影响流质量。如果会话的订阅者人数超过30个左右,则应与TokBox支持联系,以帮助您调整设置以扩展会话。