webrtc - 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
吗?
我错过了什么吗?
解决方案
TokBox 开发者布道者在这里。
实现看起来是正确的,但请记住,如果会话使用Scalable Video ,您只能作为订阅者控制分辨率。设置首选分辨率仅适用于支持可扩展视频的客户端发布的流:使用 OpenTok iOS SDK(在某些设备上)、OpenTok Android SDK(在某些设备上)或 Chrome 中的 OpenTok.js 的客户端。在不使用可缩放视频的流中,设置此属性无效。
另请记住,并非所有解决方案都可供订阅者使用。当您设置首选分辨率时,OpenTok.js 和视频编码器会选择与您的设置匹配的最佳可用分辨率。可用的分辨率取决于已发布流的分辨率。订阅者对象的stream.resolution
属性表示流可用的最高分辨率。流可用的每个分辨率都将使用相同的纵横比。可用的实际分辨率动态地取决于发布者和订阅者可用的网络和 CPU 资源。
有关更多信息,请查看订阅文档。
推荐阅读
- javascript - 在二维数组中查找 argmax 的最快方法
- image - Flutter:无法从 ChangeNotifier 获取文件
- php - Laravel Mails Swift_IoException 无法打开文件进行读取
- java - startActivity(intent) 在 Android 上导致错误
- r - R:计算R中多个组/变量的值差异
- game-engine - 游戏开发者是否仅为单个游戏或游戏特许经营权构建自定义游戏引擎?
- java - 使用 Graph API 版本 2.3.2 发送带有多个附件的邮件(大小 < 4 MB)
- awk - awk 中的 BEGIN 和 END 块
- sql - SQL查询显示每个结果3次
- flutter - 颤振如何检查产品是否已添加到购物篮中