螢幕共享
本文件主要提供連麥模組下的螢幕共享功能的 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 |
螢幕共享中,無法設定螢幕共享配置 |
