首页 > 解决方案 > Opentok 为订阅者提供的首选解决方案不起作用

问题描述

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吗?

我错过了什么吗?

标签: webrtcopentoktokbox

解决方案


TokBox 开发者布道者在这里。

实现看起来是正确的,但请记住,如果会话使用Scalable Video ,您只能作为订阅者控制分辨率。设置首选分辨率仅适用于支持可扩展视频的客户端发布的流:使用 OpenTok iOS SDK(在某些设备上)、OpenTok Android SDK(在某些设备上)或 Chrome 中的 OpenTok.js 的客户端。在不使用可缩放视频的流中,设置此属性无效。

另请记住,并非所有解决方案都可供订阅者使用。当您设置首选分辨率时,OpenTok.js 和视频编码器会选择与您的设置匹配的最佳可用分辨率。可用的分辨率取决于已发布流的分辨率。订阅者对象的stream.resolution属性表示流可用的最高分辨率。流可用的每个分辨率都将使用相同的纵横比。可用的实际分辨率动态地取决于发布者和订阅者可用的网络和 CPU 资源。

有关更多信息,请查看订阅文档


推荐阅读