我使用MediaMode.ROUTED
在后端创建opentok会话,并创建像这样的发布者对象:
var publisherOptions = {
resolution: '1280x960',
style: {
nameDisplayMode: "on",
buttonDisplayMode: "off"
},
};
const el = createElement();
publisher = OT.initPublisher(el, publisherOptions);
在订户端,我这样连接:
subscriberOptions = {
insertMode: 'append',
preferredResolution: {width: 320, height: 240},
style: {
buttonDisplayMode: 'off'
}
};
subscriber = session.subscribe(event.stream, 'subscriber', subscriberOptions, function(error) {
if (error) {
console.log('There was an error publishing: ', error.name, error.message);
}
});
但是我在订户上收到的流是1280x960
,不是320x240
吗?
我想念什么吗?
答案 0 :(得分:0)
此处是TokBox开发人员的传播者。
该实现看起来是正确的,但是请记住,如果会话使用Scalable Video,则只能以订户的身份控制分辨率。设置首选分辨率仅适用于支持可伸缩视频的客户端发布的流:使用OpenTok iOS SDK(在某些设备上),OpenTok Android SDK(在某些设备上)或Chrome中的OpenTok.js的客户端。 在不使用可伸缩视频的流中,设置此属性无效。
还请记住,并非所有分辨率都可供订户使用。设置首选分辨率时,OpenTok.js和视频编码器会选择与您的设置相匹配的最佳可用分辨率。可用的分辨率取决于已发布流的分辨率。 Subscriber对象的stream.resolution
属性表示可用于流的最高分辨率。流可用的每个分辨率将使用相同的宽高比。可用的实际分辨率动态取决于发布者和订阅者可用的网络和CPU资源。
有关更多信息,请查看documentation进行订阅。