Pano开发者中心
  • 文档中心
  • 下载中心

›高级功能

新手入门

  • 简介
  • 名词解释
  • 账号注册指南
  • 创建第一个应用

规则说明

  • Channel ID命名规则
  • 权限控制
  • 计费说明
  • 最长通话时长说明
  • 每月一万分钟免费说明
  • 布局参数说明

场景方案

    教育行业

    • 1vN互动小班课
    • 互动直播大班课

快速接入

  • 简介
  • 音视频

    • Windows (C++)
    • Android (Java)
    • iOS (Objective-C)
    • Web

    白板

    • Web

高级功能

  • 简介
  • 屏幕共享
  • 状态回调
  • 音量指示
  • 混音/伴音
  • 耳返
  • 美颜
  • 音视频数据回调
  • 音视频外部采集
  • 反馈

RESTful API

  • 基本格式
  • 获取Token
  • 频道管理
  • 云端录制
  • CDN推流
  • 文档转码
  • 服务端消息通知API

SDK API

  • SDK接口说明
  • Android (Java)
  • Windows (C++)
  • iOS/macOS (Objective-C)
  • Web SDK

    • PanoRtc 参考
    • RtcEngine
    • RtcWhiteboard
    • Constants

更新记录

  • 简介
  • SDK

    • Windows
    • macOS
    • iOS
    • Android
    • Electron
    • Web
    • Web Whiteboard

    Demo-PanoVideoCall

    • Windows、Mac和Web
    • iOS
    • Android

    Demo-PanoAudioChat

    • iOS

帮助

  • FAQ
  • 更多帮助

屏幕共享

简介

Pano SDK 桌面和浏览器版本支持将屏幕画面分享给其他用户。
Pano 的屏幕共享可以和视频画面同时发送/接收。

各端 SDK 相关接口,请查看下列介绍:

  • Windows (C++)
  • macOS (Objective-C)
  • Web

Windows (C++)

屏幕共享事件通知

通过继承 RtcEngine::Callback 类,重写回调接口来处理 Pano SDK 返回的通知。
和屏幕共享有关的事件通知如:

  • onUserScreenStart 其他用户开启屏幕共享
  • onUserScreenStop 其他用户关闭屏幕共享
  • onUserScreenMute 其他用户暂停屏幕共享
  • onUserScreenUnmute 其他用户恢复屏幕共享
  • onUserScreenSubscribe 订阅其他用户屏幕共享的结果
  • onFirstScreenDataReceived 收到其他用户的第一个屏幕共享数据包

屏幕共享源管理

通过 RtcEngine::getScreenSourceManager 方法获取屏幕共享源管理器(ScreenSourceManager),相关方法如:

  • ScreenSourceManager::enumerateDisplays 枚举显示屏幕
  • ScreenSourceManager::enumerateApplications 枚举显示应用
  • ScreenSourceManager::enableFilterSelfApp 设置是否过滤自己的进程(设置后当前进程的画面不会被共享出去)
  • ScreenSourceManager::setScreenOptimization 设置屏幕共享模式(通常无需设置,默认 forMotion 为 false,适用于大多数场景)
  • ScreenSourceManager::setScreenSource 设置屏幕共享源

以下为屏幕共享源管理高级接口(适用于特殊场景,通常不需要使用):

  • ScreenSourceManager::beginConfiguration 开始配置,调用此接口后,才可以调用下列其他接口
  • ScreenSourceManager::selectSharedDisplay 选择需要共享的显示器
  • ScreenSourceManager::addSharedScreenSource 添加屏幕共享源
  • ScreenSourceManager::removeSharedScreenSource 移除指定的屏幕共享源
  • ScreenSourceManager::addUnsharedScreenSource 添加不希望被共享的屏幕源
  • ScreenSourceManager::removeUnsharedScreenSource 移除指定的不被共享的屏幕源
  • ScreenSourceManager::commitConfiguration 提交配置

开启屏幕共享

通过 RtcEngine::startScreen 方法开启屏幕共享。

请在加入频道成功后再调用此接口。

停止屏幕共享

通过 RtcEngine::stopScreen 方法停止屏幕共享。

暂停与恢复屏幕共享

通过 RtcEngine::muteScreen 方法暂停屏幕共享,RtcEngine::unmuteScreen 方法恢复屏幕共享。

订阅其他用户的屏幕共享

通过 RtcEngine::subscribeScreen 方法订阅其他用户的屏幕共享。
subscribeScreen 有两个重载方法,参数类型不同,一个传入数据接收漕,一个传入显示渲染窗口。

请在收到 其他用户开启屏幕共享 通知后再订阅该用户的屏幕共享。

取消订阅屏幕共享

通过 RtcEngine::unsubscribeScreen 方法取消订阅其他用户的屏幕共享。

其他高级功能

以下高级接口用于接收方设置显示效果:

  • RtcEngine::updateScreenScalingRatio 更新整个屏幕共享的缩放比例(绝对缩放)
  • RtcEngine::updateScreenScalingRatioWithFocus 基于特定坐标点更新屏幕共享的缩放比例(相对缩放,例如,基于某个坐标点操作双指缩放)
  • RtcEngine::updateScreenMovingDistance 移动屏幕共享的显示位置

macOS (Objective-C)

屏幕共享事件通知

通过实现 PanoRtcEngineDelegate 协议的回调方法来处理 Pano SDK 返回的通知。 和屏幕共享有关的事件通知如:

  • - onUserScreenStart: 其他用户开启屏幕共享
  • - onUserScreenStop: 其他用户关闭屏幕共享
  • - onUserScreenMute: 其他用户暂停屏幕共享
  • - onUserScreenUnmute: 其他用户恢复屏幕共享
  • - onUserScreenSubscribe:withResult: 订阅其他用户屏幕共享的结果
  • - onFirstScreenDataReceived: 收到其他用户的第一个屏幕共享数据包
  • - onScreenSendStats: 开启屏幕共享的统计
  • - onScreenRecvStats: 接收屏幕共享的统计

屏幕共享源管理

PanoRtcEngineKit 的屏幕共享源管理相关方法如:

  • - enumerateScreenSources: 枚举屏幕共享源(通过 PanoScreenSourceType 参数指定屏幕共享源类型:屏幕或应用,窗口暂未支持)
  • - enableSreenFilterSelfApp: 设置是否过滤自己的进程(设置后当前进程的画面不会被共享出去)
  • - setScreenOptimization: 设置屏幕共享模式(通常无需设置,默认 forMotion 为 false,适用于大多数场景)
  • - setScreenSource:withType: 设置屏幕共享源

以下为屏幕共享源管理高级接口(适用于特殊场景,通常不需要使用):

  • - beginScreenConfiguration: 开始配置,调用此接口后,才可以调用下列其他接口
  • - selectSharedScreen: 选择需要共享的屏幕
  • - addSharedScreenSource:withType: 添加屏幕共享源
  • - removeSharedScreenSource:withType: 移除指定的屏幕共享源
  • - addUnsharedScreenSource:withType: 添加不希望被共享的屏幕源
  • - removeUnsharedScreenSource:withType: 移除指定的不被共享的屏幕源
  • - commitScreenConfiguration 提交配置

开启屏幕共享

通过 PanoRtcEngineKit 的 - startScreen 方法开启屏幕共享。

请在加入频道成功后再调用此接口。

停止屏幕共享

通过 PanoRtcEngineKit 的 - stopScreen 方法停止屏幕共享。

暂停与恢复屏幕共享

通过 PanoRtcEngineKit 的 - muteScreen 方法暂停屏幕共享,- unmuteScreen 方法恢复屏幕共享。

订阅其他用户的屏幕共享

通过 PanoRtcEngineKit 的 - subscribeScreen:withView: 或 - subscribeScreen:withDelegate: 方法订阅其他用户的屏幕共享。
前者附带渲染视图,后者附带外置渲染器。

请在收到 其他用户开启屏幕共享 通知后再订阅该用户的屏幕共享。

取消订阅屏幕共享

通过 PanoRtcEngineKit 的 - unsubscribeScreen: 方法取消订阅其他用户的屏幕共享。

其他高级功能

PanoRtcEngineKit 的以下高级接口用于接收方设置显示效果:

  • - updateScreenScaling:withRatio: 更新整个屏幕共享的缩放比例(绝对缩放)
  • - updateScreenScaling:withRatio:focus: 基于特定坐标点更新屏幕共享的缩放比例(相对缩放,例如,基于某个坐标点操作双指缩放)
  • - updateScreenMoving:withDistance: 移动屏幕共享的显示位置

Web

屏幕共享事件通知

通过 RtcEngine 实例的 on 方法注册回调通知。 和屏幕共享有关的事件通知如:

  • getLocalScreen 获取本地屏幕共享成功,会返回 videoTag 用于 UI 展示
  • getScreenMediaFailed 获取本地屏幕共享失败(未授权或取消了共享)
  • startScreenTimeout 开启屏幕共享超时
  • localScreenEnded SDK已停止本地屏幕共享(例如用户关闭了共享的应用程序)
  • userScreenStart 其他用户开启屏幕共享
  • userScreenStop 其他用户关闭屏幕共享
  • userScreenMute 其他用户暂停屏幕共享
  • userScreenUnmute 其他用户恢复屏幕共享
  • userScreenReceived 收到其他用户的屏幕共享数据,会返回 videoTag 用于 UI 展示
  • failedToSubscribeScreen 订阅其他用户的共享屏幕失败

开启屏幕共享

通过 RtcEngine 的 startScreen 方法开启屏幕共享。

  • 请在加入频道成功后再调用此接口。
  • 开启屏幕共享可能失败,请注意处理 getScreenMediaFailed、startScreenTimeout 通知。
  • 如需在本地显示屏幕共享,请处理 getLocalScreen 通知。

停止屏幕共享

通过 RtcEngine 的 stopScreen 方法停止屏幕共享。

暂停与恢复屏幕共享

通过 RtcEngine 的 muteScreen 方法暂停屏幕共享,unmuteScreen 方法恢复屏幕共享。

订阅其他用户的屏幕共享

通过 RtcEngine 的 subscribeScreen 方法订阅其他用户的屏幕共享。

请在收到 其他用户开启屏幕共享 通知后再订阅该用户的屏幕共享。

取消订阅屏幕共享

通过 RtcEngine 的 unsubscribeScreen 方法取消订阅其他用户的屏幕共享。

Last updated on 12/16/2020
← 简介状态回调 →
  • 简介
  • Windows (C++)
    • 屏幕共享事件通知
    • 屏幕共享源管理
    • 开启屏幕共享
    • 停止屏幕共享
    • 暂停与恢复屏幕共享
    • 订阅其他用户的屏幕共享
    • 取消订阅屏幕共享
    • 其他高级功能
  • macOS (Objective-C)
    • 屏幕共享事件通知
    • 屏幕共享源管理
    • 开启屏幕共享
    • 停止屏幕共享
    • 暂停与恢复屏幕共享
    • 订阅其他用户的屏幕共享
    • 取消订阅屏幕共享
    • 其他高级功能
  • Web
    • 屏幕共享事件通知
    • 开启屏幕共享
    • 停止屏幕共享
    • 暂停与恢复屏幕共享
    • 订阅其他用户的屏幕共享
    • 取消订阅屏幕共享
浙ICP备20002645号 Copyright ©2020 拍乐云. All Rights Reserved