跳转至

startShareScreen

  • 简要描述

    开始共享桌面

  • 回调

    onShareScreenState(tk_uid peerId, TK_MEDIA_STATUS state)

  • 接口详解

    int startShareScreen(const DesktopSource& source) 返回值:return 0 success 参数source:桌面共享源,详情请查看DesktopSource

  • 使用示例

    1
    2
    3
    4
    5
    6
    7
    8
    DesktopSource m_desktopSource;
    std::vector<ValidWindow> list;
    GetRoomClient()->getValidWindowList(list, (TK_SOURCETYPE)m_desktopSource.type);
    m_desktopSource.window = "windows窗口句柄";
    m_desktopSource.type = TK_SOURCE_WINDOW;
    m_desktopSource.rect = {0,0,0,0};
    m_desktopSource.cursorMonitor = true;
    GetRoomClient()->startShareScreen(m_desktopSource);
    

stopShareScreen

updateShareScreen

  • 简要描述

    更新共享桌面 专门用于更新播放用户分享的屏幕共享流接口

  • 接口详解

    int updateShareScreen(const DesktopSource& source) 返回值:return 0 success 参数source:桌面共享源,详情请查看DesktopSource

getValidWindowList

  • 简要描述

    获取有效共享窗口 此接口用于获取到有效的窗口 来给 startShareScreen()函数使用

  • 接口详解

    int getValidWindowList(ValidWindow windows[], int& size, TK_SOURCETYPE type) 返回值:return 0 success 参数

参数 说明
windows 返回窗口列表指针
size 返回数据的大小
type window类型,0:桌面,1:应用程序窗口,2:区域共享
window类型详情请见TK_SOURCETYPE
  • 使用示例

    请见startShareScreen()的使用示例

getValidWindowListEx

  • 简要描述

    获取有效共享窗口 此接口用于获取到有效的窗口(此接口携带缩略图和图标数据) 来给 startShareScreen()函数使用

  • 接口详解

    ITKValidWindowList* getValidWindowListEx(TK_SOURCETYPE type, const tk_thumbImageSize& imageSize = { 0,0,0,0 }) 返回值:ITKValidWindowList的指针 参数

参数 说明
type window类型,0:桌面,1:应用程序窗口,2:区域共享
imageSize 设置缩略图的大小tk_thumbImageSize。 屏幕或窗口的缩略图的目标尺寸(宽高单位为像素)。 SDK 会在保证原图不变形的前提下,缩放原图,使图片最长边和目标尺寸的最长边的长度一致。例如,原图宽高为 400 × 300,thumbSize 为 100 x 100,缩略图实际尺寸为 100 × 75。限制缩放最大尺寸为500 * 500 。
  • 使用示例

    请见startShareScreen()的使用示例

  • 注意

    请不要使用 delete ITKValidWindowList* 释放资源,这很容易导致崩溃,请使用 ITKValidWindowList 中的 release 方法释放列表。

getCount

  • 简要描述

    获取共享源信息 获取可共享的窗口和屏幕的个数。

  • 接口详解

    virtual uint32_t getCount() = 0 返回值:可共享的窗口和屏幕的个数。

getWindowInfo

  • 简要描述

    获取共享源信息 获取指定的可共享窗口或屏幕的信息。

  • 接口详解

    virtual ValidWindow getWindowInfo(uint32_t index) = 0 返回值ValidWindow 参数

参数 说明
index 指定的可共享窗口或屏幕的索引。索引值范围为 [0,getCount())。

release

  • 简要描述

    释放共享源信息 释放 ITKValidWindowList

  • 接口详解

    virtual void release() = 0 获取可共享的窗口和屏幕对象列表后,为避免内存泄露,请调用该方法释放 ITKValidWindowList,不要直接删除 ITKValidWindowList。

playScreen

  • 简要描述

    播放屏幕共享 专门用于更新播放用户分享的屏幕共享流接口

  • 接口详解

    int playScreen(tk_uid peerID, VideoCanvas canvas) 返回值:return 0 success 参数

参数 说明
peerID 用户ID
canvas 视频

unplayScreen

  • 简要描述

    停止播放屏幕共享

  • 接口详解

    unplayScreen(tk_uid peerID) 返回值:return 0 success 参数peerID:用户ID

updateScreenCaptureParameters

  • 简要描述

    更新屏幕共享的参数配置

  • 注意

    开启屏幕共享或窗口共享前后都可以调用该方法

  • 接口详解

    void updateScreenCaptureParameters(const ScreenCaptureParameters& captureParams)

参数 说明
captureParams(ScreenCaptureParameters 屏幕共享的参数配置
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
DesktopSource m_desktopSource
m_desktopSource.type = TK_SOURCE_SCREEN;
std::vector<ValidWindow> list;

App::sdk()->getValidWindowList(list, size_, (TK_SOURCETYPE)m_desktopSource.type);

for (int i = 0; i < size_; i++)
{
    ValidWindow wins = tmpList[i];
    list.push_back(wins);
}

//排除窗口
tk_view wnds[1] = { 0 };    //排除
wnds[0] = reinterpret_cast<tk_view>(329598);
ScreenCaptureParameters testParam;
testParam.excludeWindowList = wnds;
testParam.excludeWindowCount = 1;
testParam.windowFocus = 0;
//开启高亮
testParam.enableHighLight = true;
testParam.highLightColor = 0xFF653fcc;
testParam.highLightWidth = 10;

//设置帧率。 默认为5
testParam.fps = 5;

App::sdk()->updateScreenCaptureParameters(testParam);

//开始共享
m_desktopSource.window = (void*)list[0].id;
m_desktopSource.cursorMonitor = true;
m_desktopSource.rect = { 0,0,0,0 };

App::sdk()->startShareScreen(m_desktopSource);

© 2016-2023 北京拓课网络科技有限公司 版权所有  京ICP备17018423号-1 京公网安备11010502043461号