保利威文档中心

幫助中心

螢幕共享

更新時間:2025-02-28 14:41:01

本文件主要提供連麥模組下的螢幕共享功能的 API 說明。

一、使用方式

1.1 取得螢幕共享資訊

API 方法: getScreenShareInfo(): ScreenShareInfo

回傳值說明: 螢幕共享資訊,ScreenShareInfo 類型,詳細類型說明如下

屬性名稱 說明 類型
supportScreenShare 目前環境是否支援螢幕共享 boolean
screenShareMode 螢幕共享模式 ScreenShareMode
audioMixEnabled 螢幕共享混音開關 boolean
isScreenSharing 目前是否正在螢幕共享中 boolean
supportPip 目前環境是否支援子母畫面 boolean
isPiping 目前是否正在子母畫面中 boolean

範例:

const screenShareInfo = watchCore.connectMic.getScreenShareInfo();
console.log('是否支持屏幕共享', screenShareInfo.supportScreenShare);
console.log('正在屏幕共享中', screenShareInfo.isScreenSharing);

1.2 設定螢幕共享配置

透過 setScreenShareConfig 設定螢幕共享配置,請注意在螢幕共享期間無法呼叫此方法進行螢幕共享設定。

API 方法: setScreenShareConfig(config?: ScreenShareConfig): ScreenShareResult

參數說明:

  • config:螢幕共享配置,ScreenShareConfig 類型,可選參數,預設為 {},詳細類型說明如下
參數名稱 說明 類型 必填 預設值
screenShareMode 共享模式 ScreenShareMode -
audioMixEnabled 混音開關 boolean -

回傳值說明: 設定結果,ScreenShareResult 類型

範例:

import { ScreenShareMode } from '@polyv/live-watch-sdk';

const result = await watchCore.connectMic.setScreenShareConfig({
  // 共享模式:动态画面为主
  screenShareMode: ScreenShareMode.Motion,
  // 开启混音
  audioMixEnabled: true,
});

if (result.success) {
  console.log('设置成功');
}

1.3 開始螢幕共享

透過 startScreenShare 開始螢幕共享,並透過 ConnectMicEvents.ScreenShareStart 事件監聽螢幕共享開始,請注意開始前瀏覽器需要取得使用者授權,若使用者拒絕授權則回傳開始失敗結果。

API 方法: startScreenShare(): Promise<ScreenShareResult>

回傳值說明: Promise<ScreenShareResult> 類型

範例:

import { ScreenShareError } from '@polyv/live-watch-sdk';

async function startScreenShare() {
  const result = await watchCore.connectMic.startScreenShare();
  if (result.success) {
    const info = watchCore.connectMic.getScreenShareInfo();
    console.log('已进入屏幕共享', info.isScreenSharing); // true
    return;
  }

  if (result.failReason === ScreenShareError.BrowserNotSupport) {
    toast.error('屏幕共享失败,您拒绝了系统权限');
  }
}

1.4 停止螢幕共享

透過 stopScreenShare 停止螢幕共享,並透過 ConnectMicEvents.ScreenShareStop 事件監聽螢幕共享結束。

API 方法: stopScreenShare(): Promise<ScreenShareResult>

回傳值說明: Promise<ScreenShareResult> 類型

範例:

// 结束屏幕共享
watchCore.connectMic.stopScreenShare();

1.5 顯示使用者攝影機(子母畫面)

螢幕共享開啟後,可透過 enterPip 顯示使用者的攝影機,進入子母畫面模式。

API 方法: enterPip(): Promise<void>

範例:

// 显示画中画
await watchCore.connectMic.enterPip();
const info = watchCore.connectMic.getScreenShareInfo();
console.log('是否正在画中画模式', info.isPiping); // true

1.6 隱藏使用者攝影機(子母畫面)

螢幕共享開啟後,可透過 exitPip 隱藏使用者的攝影機,退出子母畫面模式。

API 方法: exitPip(): Promise<void>

範例:

// 隐藏画中画
await watchCore.connectMic.exitPip();
const info = watchCore.connectMic.getScreenShareInfo();
console.log('是否正在画中画模式', info.isPiping); // false

二、其他

2.1 螢幕共享異常原因

Enum 列舉: ScreenShareError

常數 列舉成員 說明
'Unknown' ScreenShareError.Unknown 未知
'BrowserNotSupport' ScreenShareError.BrowserNotSupport 目前環境不支援螢幕共享
'ChannelNotSupport' ScreenShareError.ChannelNotSupport 目前頻道不支援螢幕共享
'PermissionDenied' ScreenShareError.PermissionDenied 使用者權限被拒絕
'SystemPermissionDenied' ScreenShareError.SystemPermissionDenied 系統權限被拒絕
'ScreenShareing' ScreenShareError.ScreenShareing 螢幕共享中,無法設定螢幕共享配置
联系客服,在线咨询