产品百科 | RTC Windows SDK 如何调用屏幕分享接口

简介: 阿里云 RTC SDK 为您提供屏幕分享使用的接口方法,通过本文档您可以了解实现的具体调用流程。

阿里云 RTC SDK 为您提供屏幕分享使用的接口方法,通过本文档您可以了解实现的具体调用流程。

背景信息

目前 Windows SDK 屏幕分享功能支持屏幕分享和窗口分享两种类型,其中屏幕分享还支持指定区域进行分享,应用侧可根据业务场景设置分享内容并推流。

说明 本文将推流端的操作分为屏幕分享和窗口分享两种类型。

屏幕分享

  1. 推流端创建 SDK 实例后,通过接口 getScreenShareSourceInfo 可以获取当前屏幕分享源,其中参数 source_type 指定 AliRtcScreenShareDesktop,然后 SDK 通过 source_list 参数返回当前设备所有显示器设备。
AliRtcEngine *pEngine = AliRtcEngine::sharedInstance(this, "");
// 获取屏幕分享source
AliRtcScreenSourceList sourceList;
pEngine->getScreenShareSourceInfo(AliRtcScreenShareDesktop, sourceList);
// 遍历所有支持屏幕
for (int i = 0; i < sourceList.sourceNum; i++) {
}


说明 屏幕分享只有在当前设备接入显示器超过 1 个时,会返回多个 source。


  1. 通过接口 setScreenShareSource 设置屏幕分享 source,其中 source 参数中的 sourceId 设置为需要分享的屏幕 source id(上一步骤中获取),同时如果业务需要只分享屏幕中的部分区域,则设置 source 参数中的 isShareByRegion 字段为 true,同时将要分享区域的左上角坐标和宽高,赋值给 source 参数中的 shareRegion 变量。
// 设置屏幕分享源为屏幕分享,并指定分享屏幕source id
AliRtcScreenSource source;
source.eType = AliRtcScreenShareDesktop;
source.sourceId = sourceId;
// 如果需要按区域分享,则设置isShareByRegion为true,并指定分享区域,如分享屏幕左上角100 x 100的区域
source.isShareByRegion = true;
source.shareRegion.originX = 0.f;
source.shareRegion.originY = 0.f;
source.shareRegion.width = 100.f;
source.shareRegion.height = 100.f;
// 设置分享内容
pEngine->setScreenShareSource(source);


说明 按区域分享时,设置分享区域最小分辨率为 16x16,设置区域小于最小分辨率时重置为最小分辨率;按区域分享时,设置分享区域超过实际桌面分辨率时,将按照完整桌面分辨率分享,桌面分辨率可通过接口 getDesktopResolution 接口获取,用于分享区域设置校验。


  1. 配置分享内容完成后,启动屏幕共享推流。
// 配置屏幕分享推流
pEngine->configLocalScreenPublish(true);
// 启动推流
pEngine->publish();
  1. 结束分享时,配置屏幕共享流停推。
// 配置屏幕分享停止
pEngine->configLocalScreenPublish(false);
// 启动停推
pEngine->publish();

窗口分享

  1. 推流端创建 SDK 实例后,通过接口 getScreenShareSourceInfo 可以获取当前屏幕分享源,其中参数 source_type 指定 AliRtcScreenShareWindow,然后 SDK 通过 source_list 参数返回当前电脑上所有可见窗口的 source id 和 source title。
AliRtcEngine *pEngine = AliRtcEngine::sharedInstance(this, "");
// 获取屏幕分享source
AliRtcScreenSourceList sourceList;
pEngine->getScreenShareSourceInfo(AliRtcScreenShareWindow, sourceList);
// 遍历所有支持分享窗口
for (int i = 0; i < sourceList.sourceNum; i++) {
}


说明 SDK 只会返回所有当前可见(没有最小化且 Size 不为 0)的窗口作为分享源。


  1. 通过接口 setScreenShareSource 设置屏幕分享 source,其中 source 参数的 sourceId 设置为需要分享窗口 id(上一步骤中获取)。
// 设置屏幕分享源为屏幕分享,并指定分享屏幕source id
AliRtcScreenSource source;
source.eType = AliRtcScreenShareWindow;
source.sourceId = sourceId;
// 设置分享内容
pEngine->setScreenShareSource(source);
  1. 配置分享内容完成后,启动屏幕共享推流。
// 配置屏幕分享推流
pEngine->configLocalScreenPublish(true);
// 启动推流
pEngine->publish();


说明 设置分享源到启动推流过程中,如果指定的分享窗口发送变化(被关闭 / 不可见)导致无法分享,推流将会发生失败,业务方调用时需要关注推流结果是否成功;分享过程中,如果分享窗口被最小化,同样会导致 SDK 无法抓取数据,分享内容异常。


  1. 结束分享时,配置屏幕共享流停推。
// 配置屏幕分享停止
pEngine->configLocalScreenPublish(false);
// 启动停推
pEngine->publish();

订阅端

订阅端用户可通过自动或手动方式订阅推流端屏幕分享视频流,并设置对应 View 显示,详情请参见 AliRtcEngine 接口


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png

相关文章
|
自然语言处理 Java API
阿里云自然语言处理--文本相似度(电商)Java SDK 调用示例
自然语言处理(Natural Language Processing,简称NLP),是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,旨在帮助用户高效的处理文本,已经广泛应用在电商、文娱、司法、公安、金融、医疗、电力等行业客户的多项业务中,取得了良好的效果。文本相似度可以提供不同文本之间相似度的计算,并输出一个介于0到1之间的分数,分数越大则文本之间的相似度越高。可广泛应用于信息检索,新闻推荐、智能客服等场景。使用该服务建议分数不要用于直接判断,可以作为特征,并按照范围进行分桶。本文将使用Java Common SDK 演示文本相似度(电商)服务的快速调用以供参考。
807 0
阿里云自然语言处理--文本相似度(电商)Java SDK 调用示例
|
达摩院 Java 开发工具
Python、Java SDK两种方式调用阿里云人脸检测与五官定位
阿里云视觉智能开放平台基于达摩院自研的人脸人体分析技术,提供人脸检测与五官定位、人脸属性识别、人脸比对、人脸搜索、人体检测、人体属性、行为分析等多种功能,为开发者和企业用户提供高性能高可用的人脸人体识别服务。广泛应用于数字门店、楼宇门禁、身份识别、互动娱乐、IPC摄像头、内容广告等领域。此篇文章简单介绍人脸人体与五官定位python,java两种方式调用。
672 0
Python、Java SDK两种方式调用阿里云人脸检测与五官定位
HH
|
物联网 API 开发工具
物联网平台之python语言的设备端接入、云端sdk集成调用
本文介绍如何调用Python语言的Paho MQTT类库,将设备接入阿里云物联网平台,并进行消息收发。 以及物联网平台提供Python语言的云端SDK供开发人员使用。本文介绍云端Python SDK的安装和配置,及使用Python SDK调用云端API的示例。
HH
942 0
物联网平台之python语言的设备端接入、云端sdk集成调用
|
Java 开发工具 Maven
java调用阿里云日志SDK 查询日志
java调用阿里云日志SDK 查询日志
682 1
|
自然语言处理 Java API
阿里云自然语言处理--文本摘要(电商)Java SDK 调用示例
自然语言处理(Natural Language Processing,简称NLP),是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,旨在帮助用户高效的处理文本,已经广泛应用在电商、文娱、司法、公安、金融、医疗、电力等行业客户的多项业务中,取得了良好的效果。文本摘要服务可以在保证能够反映原文档的重要内容的情况下,尽可能地保持简明扼要,自动抽取输入文本中的关键信息并生成短文本摘要。能让用户在当今世界海量的互联网数据中找到有效的信息,有效缩短检索的时间,提高用户体验。本文将使用Java Common SDK 演示文本摘要(电商)服务的快速调用以供参考。
600 0
阿里云自然语言处理--文本摘要(电商)Java SDK 调用示例
|
自然语言处理 Java API
阿里云自然语言处理--中心词提取(中文)Java SDK 调用示例
自然语言处理(Natural Language Processing,简称NLP),是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,旨在帮助用户高效的处理文本,已经广泛应用在电商、文娱、司法、公安、金融、医疗、电力等行业客户的多项业务中,取得了良好的效果。NLP基础服务中心词提取是基于海量数据,使用电商标题中心词以及类目进行训练,通过给每个词计算一个相关性分数来衡量每个词与句子的相关性程度,进而识别并提取出句子的中心词。适用于提取电商搜索query、标题及其他类似短文本(一般小于25个词)的中心词。本文将使用Java CommonSDK演示中心词提取(中文)服务的快速调用以供参考。
721 0
阿里云自然语言处理--中心词提取(中文)Java SDK 调用示例
|
自然语言处理 Java API
阿里云自然语言处理--词性标注(电商)Java SDK 调用示例
自然语言处理(Natural Language Processing,简称NLP),是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,旨在帮助用户高效的处理文本,已经广泛应用在电商、文娱、司法、公安、金融、医疗、电力等行业客户的多项业务中,取得了良好的效果。通过词性标注服务,用户可以快速的为每一个词附上对应的词性,结合分词服务,可以快速进行更深层次的文本挖掘处理,无需担心新词发现、歧义消除等问题。本文将使用Java CommonSDK演示词性标注(电商)服务的快速调用以供参考。
398 0
阿里云自然语言处理--词性标注(电商)Java SDK 调用示例
|
文字识别 开发工具 Python
阿里云文字识别(OCR)票据凭证识别Python SDK调用
阿里云文字识别(Optical Character Recognition,OCR)可以将图片中的文字信息转换为可编辑文本,根据客户的业务场景和需求,将产品分为了通用文字识别、个人证照识别、票据凭证识别、教育场景识别、车辆物流识别、企业资质识别、小语种文字识别等,满足各种客户的图片识别需求。此片文章将简单介绍票据凭证识别的python调用
1604 0
阿里云文字识别(OCR)票据凭证识别Python SDK调用
|
达摩院 Java 开发工具
阿里云视觉智能开放平台人脸比对1:1Java Common SDK 调用实现本地图片对比
阿里云视觉智能开放平台基于达摩院自研的人脸人体分析技术,提供人脸比对1:1功能,基于您输入的两张图片,分别挑选两张图片中的最大人脸进行比较,判断是否为同一人。同时返回这两个人脸的矩形框坐标、比对的置信度,以及不同误识率的置信度阈值。本片文章简单介绍基于java的快速调用。
1148 0
阿里云视觉智能开放平台人脸比对1:1Java Common SDK 调用实现本地图片对比
|
自然语言处理 Java 开发工具
阿里云机器翻译产品机器批量翻译服务 Python SDK 调用指南
阿里云机器翻译产品下的机器批量翻译服务,支持同时对多段文本进行翻译。本文介绍如何使用机器批量翻译提供的Python SDK,包括SDK的安装方法及SDK代码示例。
553 0

热门文章

最新文章