Appearance
屏幕共享
屏幕共享相关的 API。
startScreenShare
开始屏幕共享。
方法签名
typescript
startScreenShare(config?: AliRtcScreenShareStartConfig): Promise<void>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| config | AliRtcScreenShareStartConfig | (可选) 屏幕共享配置 |
配置对象说明
typescript
interface AliRtcScreenShareStartConfig {
// 是否包含音频
audio?: boolean;
// 视频轨道
videoTrack?: MediaStreamTrack;
// 音频轨道
audioTrack?: MediaStreamTrack;
}说明
- 开始捕获屏幕内容并推送给远端用户
- 需要用户授权屏幕共享权限
- 支持共享整个屏幕或特定应用窗口
- 可以选择是否包含系统音频
使用示例
javascript
// 开始屏幕共享(基本用法)
await engine.startScreenShare();
// 开始屏幕共享并包含音频
await engine.startScreenShare({
audio: true,
});
// 使用自定义媒体轨道
await engine.startScreenShare({
videoTrack: customVideoTrack,
audioTrack: customAudioTrack,
});stopScreenShare
停止屏幕共享。
方法签名
typescript
stopScreenShare(): Promise<void>使用示例
javascript
// 停止屏幕共享
await engine.stopScreenShare();setScreenShareConfiguration
设置屏幕共享编码配置。
方法签名
typescript
setScreenShareConfiguration(config: AliRtcScreenShareConfiguration): Promise<void>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| config | AliRtcScreenShareConfiguration | 屏幕共享配置 |
配置对象说明
typescript
interface AliRtcScreenShareConfiguration {
// 视频编码帧率
frameRate?: number;
// 视频编码码率(kbps)
bitrate?: number;
// 视频分辨率宽度
width?: number;
// 视频分辨率高度
height?: number;
}说明
- 用于设置屏幕共享的视频编码属性
- 所有参数都有相应的范围限制,SDK会自动调节超出范围的参数
- width * height 必须小于 9437184
使用示例
javascript
// 设置屏幕共享编码配置
await engine.setScreenShareConfiguration({
frameRate: 15,
bitrate: 1500,
width: 1920,
height: 1080,
});setScreenShareContentHint
设置屏幕共享内容提示。
方法签名
typescript
setScreenShareContentHint(contentHint: string): Promise<void>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| contentHint | string | 内容提示 |
说明
- 用于优化屏幕共享的编码策略
- 根据共享内容类型选择合适的编码参数
使用示例
javascript
// 设置内容提示为文本
await engine.setScreenShareContentHint('text');
// 设置内容提示为视频
await engine.setScreenShareContentHint('motion');publishLocalScreenShareStream
控制屏幕共享流的发布状态。
方法签名
typescript
publishLocalScreenShareStream(enabled: boolean, config?: AliRtcScreenShareStartConfig): Promise<void>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| enabled | boolean | 是否发布屏幕共享流 |
| config | AliRtcScreenShareStartConfig | (可选) 屏幕共享配置 |
说明
- 控制是否向远端推送屏幕共享流
- 与 startScreenShare 不同,此方法主要控制发布状态
- 可以在不停止屏幕捕获的情况下暂停推送
使用示例
javascript
// 开始发布屏幕共享流
await engine.publishLocalScreenShareStream(true);
// 停止发布屏幕共享流(但不停止捕获)
await engine.publishLocalScreenShareStream(false);
// 开始发布并配置参数
await engine.publishLocalScreenShareStream(true, {
audio: true,
});isScreenSharePublished
查询是否正在发布屏幕共享。
方法签名
typescript
isScreenSharePublished(): boolean返回值
- true: 正在发布屏幕共享
- false: 未发布屏幕共享
说明
- 查询当前是否设置了推送屏幕共享
- SDK默认不推送屏幕共享
- 可以通过 startScreenShare 或 publishLocalScreenShareStream 开启
使用示例
javascript
const isPublished = engine.isScreenSharePublished();
console.log('是否正在发布屏幕共享:', isPublished);
if (isPublished) {
await engine.stopScreenShare();
}屏幕共享预览
startPreviewScreen
开始屏幕共享预览。
方法签名
typescript
startPreviewScreen(config?: AliRtcScreenShareStartConfig): Promise<void>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| config | AliRtcScreenShareStartConfig | (可选) 屏幕共享配置 |
说明
- 在纯音频模式下无法开始屏幕共享预览
- 需要先有屏幕共享流才能预览
使用示例
javascript
// 开始屏幕共享预览
await engine.startPreviewScreen();
// 带配置的屏幕共享预览
await engine.startPreviewScreen({
audio: true,
});stopPreviewScreen
停止屏幕共享预览。
方法签名
typescript
stopPreviewScreen(): Promise<void>使用示例
javascript
await engine.stopPreviewScreen();isScreenSharePublished(): boolean
### 返回值
- true: 正在发布屏幕共享
- false: 未发布屏幕共享
### 说明
- 查询当前是否设置了推送屏幕共享
- SDK默认不推送屏幕共享
- 可以通过 startScreenShare 或 publishLocalScreenShareStream 开启
### 使用示例
```javascript
const isPublished = engine.isScreenSharePublished();
console.log('是否正在发布屏幕共享:', isPublished);
if (isPublished) {
await engine.stopScreenShare();
}setAudioShareVolume
设置共享音频的音量大小。
方法签名
typescript
setAudioShareVolume(volume: number): void参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| volume | number | 共享音频音量大小,范围[0, 100] |
说明
- 参数必须是数字类型,否则会抛出错误
使用示例
javascript
// 设置共享音频音量为50
engine.setAudioShareVolume(50);