Appearance
媒体流订阅
媒体流订阅相关的 API,用于控制远端音视频流的订阅。
音频订阅
setDefaultSubscribeAllRemoteAudioStreams
设置是否默认订阅所有远端音频流。
方法签名
typescript
setDefaultSubscribeAllRemoteAudioStreams(sub: boolean): void参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| sub | boolean | 是否订阅 - 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>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| userId | string | 远端用户 ID |
| subscribe | boolean | 是否订阅 |
使用示例
javascript
// 订阅指定用户的音频流
await engine.subscribeRemoteAudioStream('user123', true);
// 取消订阅
await engine.subscribeRemoteAudioStream('user123', false);setRemoteAudioVolume
设置远端用户的音频播放音量。
方法签名
typescript
setRemoteAudioVolume(userId: string, volume: number): void参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| userId | string | 远端用户 ID |
| volume | number | 音量值,范围 0-100 |
使用示例
javascript
// 设置远端用户音量为 50
engine.setRemoteAudioVolume('user123', 50);视频订阅
setDefaultSubscribeAllRemoteVideoStreams
设置是否默认订阅所有远端视频流。
方法签名
typescript
setDefaultSubscribeAllRemoteVideoStreams(sub: boolean): void参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| sub | boolean | 是否订阅 |
使用示例
javascript
// 设置不自动订阅远端视频流
engine.setDefaultSubscribeAllRemoteVideoStreams(false);subscribeAllRemoteVideoStreams
订阅/取消订阅所有远端视频流。
方法签名
typescript
subscribeAllRemoteVideoStreams(sub: boolean): voidsubscribeRemoteVideoStream
订阅/取消订阅指定远端用户的视频流。
方法签名
typescript
subscribeRemoteVideoStream(
userId: string,
subscribe: boolean,
videoTrack?: AliRtcVideoTrack
): Promise<void>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| userId | string | 远端用户 ID |
| subscribe | boolean | 是否订阅 |
| videoTrack | AliRtcVideoTrack | (可选) 视频轨道类型 - 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参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| view | HTMLVideoElement | string | null | 视频元素或元素 ID |
| userId | string | 远端用户 ID |
| track | AliRtcVideoTrack | 视频轨道类型 |
使用示例
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>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| userId | string | 远端用户 ID |
| streamType | AliRtcVideoStreamType | 视频流类型 - 1: 大流(高清) - 2: 小流(标清) |
使用示例
javascript
// 切换到小流
await engine.setRemoteVideoStreamType('user123', 2);
// 切换到大流
await engine.setRemoteVideoStreamType('user123', 1);