日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Windows

Windows端屏幕分享功能分為屏幕分享和窗口分享,應用側可根據實際需求分享屏幕內容并進行推流。通過閱讀本文,您可以了解到Windows端屏幕分享的方法。

屏幕分享

  1. 推流端創建 SDK 實例后,通過接口 GetScreenShareSourceInfo 可以獲取當前屏幕分享源,其中參數 sourceType 指定 RtcEngineScreenShareDesktop,然后 SDK 返回當前設備所有顯示器設備。

    ding::rtc::RtcEngine *engine_ =;
    
    // 獲取屏幕分享source
    ding::rtc::RtcEngineDeviceInfoList *list = engine_->GetScreenShareSourceInfo(ding::rtc::RtcEngineScreenShareDesktop);
    
    // 遍歷所有支持屏幕
    for (int i = 0; i < list.GetCount(); i++) {
    
    }
    
    // 釋放list
    list->Release();
    
    說明

    屏幕分享只有在當前設備接入顯示器超過1個時,會返回多個source。

  2. 通過接口 StartScreenShareByDesktopId 設置屏幕分享 config 并根據桌面ID進行屏幕分享。其中 desktopId 設置為需要分享的屏幕 desktopId(上一步驟中獲?。?/span>

    // 設置屏幕分享源為屏幕分享,并指定分享屏幕source id
    ding::rtc::RtcEngineScreenShareConfig config; // share whole screen by default
    
    // 設置分享內容
    engine_->StartScreenShareByDesktopId(desktopId, config);
  3. 共享后通過回調判斷屏幕共享是否發布成功。

    void OnScreenSharePublishStateChanged(RtcEnginePublishState oldState, RtcEnginePublishState newState, int elapseSinceLastState, const char *channel);

    名稱

    類型

    描述

    oldState

    RtcEnginePublishState

    之前的推流狀態。

    newState

    RtcEnginePublishState

    當前的推流狀態。

    elapseSinceLastState

    int

    狀態變更時間間隔。

    channel

    const char *

    當前頻道ID。

  4. 結束分享時,配置屏幕共享流停推。

    // 配置屏幕分享停止
    engine_->StopScreenShare();
  5. 停推屏幕共享流之后通過回調判斷屏幕共享是否取消發布成功。

    void OnScreenSharePublishStateChanged(RtcEnginePublishState oldState, RtcEnginePublishState newState, int elapseSinceLastState, const char *channel);

    名稱

    類型

    描述

    oldState

    RtcEnginePublishState

    之前的推流狀態。

    newState

    RtcEnginePublishState

    當前的推流狀態。

    elapseSinceLastState

    int

    狀態變更時間間隔。

    channel

    const char *

    當前頻道ID。

窗口分享

  1. 推流端創建 SDK 實例后,通過接口 GetScreenShareSourceInfo 可以獲取當前屏幕分享源,其中參數 sourceType 指定 RtcEngineScreenShareWindow,然后 SDK 返回當前設備所有顯示器設備。

    ding::rtc::RtcEngine *engine_ =;
    
    // 獲取屏幕分享source
    ding::rtc::RtcEngineDeviceInfoList *list = engine_->GetScreenShareSourceInfo(ding::rtc::RtcEngineScreenShareWindow);
    
    // 遍歷所有支持屏幕
    for (int i = 0; i < list.GetCount(); i++) {
    
    }
    
    // 釋放list
    list->Release();
    說明

    SDK 只會返回所有當前可見(沒有最小化且 Size 不為 0)的窗口作為分享源。

  2. 通過接口 StartScreenShareByWindowId 設置屏幕分享 windowId 和 config,其中 windowId 參數設置為需要分享窗口 id(上一步驟中獲?。?。

    // 設置屏幕分享源為屏幕分享,并指定分享屏幕source id
    ding::rtc::RtcEngineScreenShareConfig config; // share whole windowby default
    
    // 設置分享內容
    engine_->StartScreenShareByWindowId(windowId, config);
  3. 共享后通過回調判斷屏幕共享是否發布成功。

    void OnScreenSharePublishStateChanged(RtcEnginePublishState oldState, RtcEnginePublishState newState, int elapseSinceLastState, const char *channel);

    名稱

    類型

    描述

    oldState

    RtcEnginePublishState

    之前的推流狀態。

    newState

    RtcEnginePublishState

    當前的推流狀態。

    elapseSinceLastState

    int

    狀態變更時間間隔。

    channel

    const char *

    當前頻道ID。

  4. 結束分享時,配置屏幕共享流停推。

    // 配置屏幕分享停止
    pEngine->StopScreenShare();
  5. 停推屏幕共享流之后通過回調判斷屏幕共享是否取消發布成功。

    void OnScreenSharePublishStateChanged(RtcEnginePublishState oldState, RtcEnginePublishState newState, int elapseSinceLastState, const char *channel);

    名稱

    類型

    描述

    oldState

    RtcEnginePublishState

    之前的推流狀態。

    newState

    RtcEnginePublishState

    當前的推流狀態。

    elapseSinceLastState

    int

    狀態變更時間間隔。

    channel

    const char *

    當前頻道ID。

訂閱端

訂閱端用戶可通過自動或手動方式訂閱推流端屏幕分享視頻流,并設置對應View顯示,詳情請參見DingRtcEngine接口。