跳转至
400-881-9892

文档中心

官方文档,可查阅产品介绍、快速入门、用户指南、开发指南、API参考、SDK参考、帮助等信息。

文档中心 互动课堂

startShareScreen

返回值: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

返回值:return 0 success

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);