Skip to content

媒体流订阅

媒体流订阅相关的 API,用于控制远端音视频流的订阅。

音频订阅

setDefaultSubscribeAllRemoteAudioStreams

设置是否默认订阅所有远端音频流。

方法签名

typescript
setDefaultSubscribeAllRemoteAudioStreams(sub: boolean): void

参数说明

参数类型描述
subboolean是否订阅
- true: 默认订阅所有远端音频流
- false: 默认不订阅

说明

  • 该方法需要在加入频道前调用
  • SDK 默认订阅所有远端音频流

使用示例

javascript
// 设置不自动订阅远端音频流
engine.setDefaultSubscribeAllRemoteAudioStreams(false);

// 加入频道
await engine.joinChannel(authInfo, userName);

subscribeAllRemoteAudioStreams

订阅/取消订阅所有远端音频流。

方法签名

typescript
subscribeAllRemoteAudioStreams(sub: boolean): void

使用示例

javascript
// 订阅所有远端音频流
engine.subscribeAllRemoteAudioStreams(true);

// 取消订阅所有远端音频流
engine.subscribeAllRemoteAudioStreams(false);

subscribeRemoteAudioStream

订阅/取消订阅指定远端用户的音频流。

方法签名

typescript
subscribeRemoteAudioStream(userId: string, subscribe: boolean): Promise<void>

参数说明

参数类型描述
userIdstring远端用户 ID
subscribeboolean是否订阅

使用示例

javascript
// 订阅指定用户的音频流
await engine.subscribeRemoteAudioStream('user123', true);

// 取消订阅
await engine.subscribeRemoteAudioStream('user123', false);

setRemoteAudioVolume

设置远端用户的音频播放音量。

方法签名

typescript
setRemoteAudioVolume(userId: string, volume: number): void

参数说明

参数类型描述
userIdstring远端用户 ID
volumenumber音量值,范围 0-100

使用示例

javascript
// 设置远端用户音量为 50
engine.setRemoteAudioVolume('user123', 50);

视频订阅

setDefaultSubscribeAllRemoteVideoStreams

设置是否默认订阅所有远端视频流。

方法签名

typescript
setDefaultSubscribeAllRemoteVideoStreams(sub: boolean): void

参数说明

参数类型描述
subboolean是否订阅

使用示例

javascript
// 设置不自动订阅远端视频流
engine.setDefaultSubscribeAllRemoteVideoStreams(false);

subscribeAllRemoteVideoStreams

订阅/取消订阅所有远端视频流。

方法签名

typescript
subscribeAllRemoteVideoStreams(sub: boolean): void

subscribeRemoteVideoStream

订阅/取消订阅指定远端用户的视频流。

方法签名

typescript
subscribeRemoteVideoStream(
  userId: string,
  subscribe: boolean,
  videoTrack?: AliRtcVideoTrack
): Promise<void>

参数说明

参数类型描述
userIdstring远端用户 ID
subscribeboolean是否订阅
videoTrackAliRtcVideoTrack(可选) 视频轨道类型
- 1: 相机流
- 2: 屏幕共享流

使用示例

javascript
// 订阅指定用户的相机流
await engine.subscribeRemoteVideoStream('user123', true, 1);

// 取消订阅
await engine.subscribeRemoteVideoStream('user123', false, 1);

setRemoteViewConfig

设置远端视频渲染视图。

方法签名

typescript
setRemoteViewConfig(
  view: HTMLVideoElement | string | null,
  userId: string,
  track: AliRtcVideoTrack
): void

参数说明

参数类型描述
viewHTMLVideoElement | string | null视频元素或元素 ID
userIdstring远端用户 ID
trackAliRtcVideoTrack视频轨道类型

使用示例

javascript
// 设置远端视频渲染
const videoElement = document.createElement('video');
videoElement.autoplay = true;
document.body.appendChild(videoElement);

engine.setRemoteViewConfig(videoElement, 'user123', 1);

// 停止渲染
engine.setRemoteViewConfig(null, 'user123', 1);

setRemoteVideoStreamType

设置订阅的视频流类型(大流/小流)。

方法签名

typescript
setRemoteVideoStreamType(
  userId: string,
  streamType: AliRtcVideoStreamType
): Promise<void>

参数说明

参数类型描述
userIdstring远端用户 ID
streamTypeAliRtcVideoStreamType视频流类型
- 1: 大流(高清)
- 2: 小流(标清)

使用示例

javascript
// 切换到小流
await engine.setRemoteVideoStreamType('user123', 2);

// 切换到大流
await engine.setRemoteVideoStreamType('user123', 1);