发布和订阅
enableDualStreamMode [1/2]
启用或关闭发送端的双流模式。
virtual int enableDualStreamMode(bool enabled) __deprecated = 0;
setDualStreamMode。- 视频大流:高码率、高分辨率。
- 视频小流:低码率、低分辨率。
- 该方法适用于发送端的所有类型的视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
- 如果你需要在多频道场景中启用双流模式,可以调用 enableDualStreamModeEx 方法。
- 你可以在加入频道前或加入频道后调用该方法。
参数
- enabled
- 是否启用双流模式:
- true:启用双流模式。
- false:(默认)关闭双流模式。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
enableDualStreamMode [2/2]
设置发送端的双流模式和视频小流。
virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig& streamConfig) __deprecated = 0;
setDualStreamMode。- 视频大流:高码率、高分辨率。
- 视频小流:低码率、低分辨率。
- 此方法适用于发送端的所有类型视频流,包括但不限于摄像头采集的视频流、屏幕共享流和自定义采集的视频流。
- 如果你需要在多频道场景中启用双流模式,可以调用 enableDualStreamModeEx 方法。
- 你可以在加入频道前或加入频道后调用此方法。
参数
- enabled
- 是否启用双流模式:
- true:启用双流模式。
- false:(默认)关闭双流模式。
- streamConfig
- 视频小流的配置。详见 SimulcastStreamConfig。信息当
mode设置为DISABLE_SIMULCAST_STREAM时,设置streamConfig不生效。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
enableDualStreamModeEx
在发送端启用或关闭不同质量层级的视频流。
virtual int enableDualStreamModeEx(bool enabled, const SimulcastStreamConfig& streamConfig, const RtcConnection& connection) = 0;
- 视频大流:高码率,高分辨率。
- 视频小流:低码率,低分辨率。
适用场景
该方法适用于多频道场景。
参数
- enabled
- 是否启用不同质量层级的视频流:
- true:启用不同质量层级的视频流。
- false:(默认)关闭不同质量层级的视频流。
- streamConfig
- 视频小流的配置。详见 SimulcastStreamConfig。信息当
mode设置为DISABLE_SIMULCAST_STREAM时,设置streamConfig无效。 - connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteAllRemoteAudioStreams
停止或恢复接收所有远端音频流。
virtual int muteAllRemoteAudioStreams(bool mute) = 0;
该方法用于停止或恢复接收所有通过 joinChannel 加入或将要加入频道的远端用户的音频流。该方法等效于 ChannelMediaOptions 中的 autoSubscribeAudio。
muteAllRemoteAudioStreams(true),本地用户将停止接收频道中所有用户的音频流,包括在调用该方法后加入频道的用户。参数
- mute
- 是否停止接收所有远端音频流:
- true:停止接收所有远端音频流。
- false:恢复接收所有远端音频流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteAllRemoteAudioStreamsEx
停止或恢复订阅所有远端用户的音频流。
virtual int muteAllRemoteAudioStreamsEx(bool mute, const RtcConnection& connection) = 0;
调用该方法后,本地用户会停止或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户。
joinChannel 时将 ChannelMediaOptions 中的 autoSubscribeAudio 设置为 false。适用场景
该方法适用于多频道场景。
参数
- mute
- 是否停止订阅所有远端用户的音频流:
- true:停止订阅所有远端用户的音频流。
- false:(默认)订阅所有远端用户的音频流。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteAllRemoteVideoStreams
停止或恢复接收所有远端用户的视频流。
virtual int muteAllRemoteVideoStreams(bool mute) = 0;
该方法对所有通过 joinChannel 加入或将要加入频道的远端用户生效,等效于 ChannelMediaOptions 中的 autoSubscribeVideo。请确保在加入频道后调用该方法。
muteAllRemoteVideoStreams(true),本地用户将停止接收频道中所有用户的视频流,包括在调用该方法后加入频道的用户。参数
- mute
- 是否停止接收所有远端视频流:
- true:停止接收所有远端视频流。
- false:恢复接收所有远端视频流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteAllRemoteVideoStreamsEx
停止或恢复订阅所有远端用户的视频流。
virtual int muteAllRemoteVideoStreamsEx(bool mute, const RtcConnection& connection) = 0;
调用该方法后,本地用户将停止或恢复订阅所有远端用户的视频流,包括之后加入频道的用户。
适用场景
该方法适用于多频道场景。
参数
- mute
- 是否停止订阅所有远端用户的视频流。
- true:停止订阅所有远端用户的视频流。
- false:(默认)订阅所有远端用户的视频流。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteLocalAudioStream
控制是否发布本地采集的音频流。
virtual int muteLocalAudioStream(bool mute) = 0;
调用该方法停止发布本地采集的音频流时,音频采集设备仍会继续工作,不受影响。
调用时机
该方法可以在加入频道前或后调用。
相关回调
成功调用该方法后,本地会触发 onAudioPublishStateChanged 回调;远端会触发 onUserMuteAudio 和 onRemoteAudioStateChanged 回调。
参数
- mute
- 是否停止发布本地音频流:
- true:停止发布本地音频流。
- false:(默认)恢复发布本地音频流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteLocalAudioStreamEx
停止或恢复发布本地音频流。
virtual int muteLocalAudioStreamEx(bool mute, const RtcConnection& connection) = 0;
适用场景
该方法适用于多频道场景。
相关回调
成功调用该方法后,远端会触发 onUserMuteAudio 和 onRemoteAudioStateChanged 回调。
参数
- mute
- 是否停止发布本地音频流:
- true:停止发布本地音频流。
- false:(默认)恢复发布本地音频流。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteLocalVideoStream
控制是否发布本地采集的视频流。
virtual int muteLocalVideoStream(bool mute) = 0;
该方法用于控制是否发布本地采集的视频流。如果你调用该方法停止发布本地视频流,视频采集设备仍然正常工作,不受影响。 相比通过将 enableLocalVideo 设为 false 来关闭本地视频采集并停止发布视频流,该方法响应更快。
调用时机
该方法可以在加入频道前或后调用。
相关回调
成功调用该方法后,本地会触发 onVideoPublishStateChanged 回调;远端会触发 onUserMuteVideo 和 onRemoteVideoStateChanged 回调。
参数
- mute
- 是否停止发布本地视频流。
- true:停止发布本地视频流。
- false:(默认)发布本地视频流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteLocalVideoStreamEx
停止或恢复发布本地视频流。
virtual int muteLocalVideoStreamEx(bool mute, const RtcConnection& connection) = 0;
该方法不会影响正在进行的视频录制,因为不会关闭摄像头。
适用场景
该方法适用于多频道场景。
相关回调
调用该方法后,远端会触发 onUserMuteVideo 回调。
参数
- mute
- 是否停止发布本地视频流。
- true:停止发布本地视频流。
- false:(默认)发布本地视频流。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteRemoteAudioStream
停止或恢复订阅指定远端用户的音频流。
virtual int muteRemoteAudioStream(uid_t uid, bool mute) = 0;
调用时机
请在加入频道后调用该方法。
相关回调
成功调用该方法后,SDK 会触发 onAudioSubscribeStateChanged 回调。
参数
- uid
- 指定远端用户的用户 ID。
- mute
- 是否订阅指定远端用户的音频流。
- true:停止订阅该用户的音频流。
- false:(默认)订阅该用户的音频流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteRemoteAudioStreamEx
停止或恢复接收指定用户的音频流。
virtual int muteRemoteAudioStreamEx(uid_t uid, bool mute, const RtcConnection& connection) = 0;
你可以在加入频道前或加入频道后调用该方法。如果用户离开频道,该方法的设置将失效。
适用场景
该方法适用于多频道场景。
参数
- uid
- 指定用户的 ID。
- mute
- 是否停止接收指定用户的音频流:
- true:停止接收指定用户的音频流。
- false:(默认)恢复接收指定用户的音频流。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteRemoteVideoStream
停止或恢复订阅指定远端用户的视频流。
virtual int muteRemoteVideoStream(uid_t uid, bool mute) = 0;
调用时机
在加入频道后调用该方法。
相关回调
成功调用该方法后,SDK 会触发 onVideoSubscribeStateChanged 回调。
参数
- uid
- 指定远端用户的用户 ID。
- mute
- 是否订阅指定远端用户的视频流:
- true:停止订阅该用户的视频流。
- false:(默认)订阅该用户的视频流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
muteRemoteVideoStreamEx
停止或恢复接收指定远端用户的视频流。
virtual int muteRemoteVideoStreamEx(uid_t uid, bool mute, const RtcConnection& connection) = 0;
适用场景
该方法适用于多频道场景。
调用时机
你可以在加入频道前或加入频道后调用该方法,用于停止或恢复接收指定远端用户的视频流。如果该用户离开频道,该设置将失效。
参数
- uid
- 远端用户 ID。
- mute
- 是否停止接收指定用户的视频流:
- true:停止接收该用户的视频流。
- false:(默认)恢复接收该用户的视频流。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setDualStreamMode [1/2]
设置发送端的视频流模式,用于控制是否发送视频小流。
virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode) = 0;
SDK 默认在发送端开启视频小流的自适应模式(AUTO_SIMULCAST_STREAM),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 setRemoteVideoStreamType 请求视频小流,发送端在收到请求后会自动开始发送。 如果你希望修改此行为,可以调用该方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流)或 ENABLE_SIMULCAST_STREAM(始终发送视频小流)。 如果你希望恢复默认行为,可以再次调用该方法并将 mode 设置为 AUTO_SIMULCAST_STREAM。
enableDualStreamMode 的区别如下: - 当将
mode设置为DISABLE_SIMULCAST_STREAM时,效果等同于调用enableDualStreamMode(false)。 - 当将
mode设置为ENABLE_SIMULCAST_STREAM时,效果等同于调用enableDualStreamMode(true)。 - 两个方法均可在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
参数
- mode
- 发送视频流的模式。详见 SIMULCAST_STREAM_MODE。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setDualStreamMode [2/2]
设置发送端不同质量层级的视频流模式。
virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig) = 0;
AUTO_SIMULCAST_STREAM),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 setRemoteVideoStreamType 发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 - 如果你希望修改此行为,可以调用此方法并将
mode设置为DISABLE_SIMULCAST_STREAM(从不发送视频小流)或ENABLE_SIMULCAST_STREAM(始终发送视频小流)。 - 如果你希望恢复默认行为,可以再次调用此方法并将
mode设置为AUTO_SIMULCAST_STREAM。
setDualStreamMode 方法(参数为 SIMULCAST_STREAM_MODE mode)的区别在于:该方法还支持配置视频小流,SDK 会根据 streamConfig 中的配置发送视频流。enableDualStreamMode 的区别如下: - 当调用此方法并将
mode设置为DISABLE_SIMULCAST_STREAM时,效果等同于调用enableDualStreamMode并将enabled设置为 false。 - 当调用此方法并将
mode设置为ENABLE_SIMULCAST_STREAM时,效果等同于调用enableDualStreamMode并将enabled设置为 true。 - 两个方法都可以在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
参数
- mode
- 视频流的发送模式,详见 SIMULCAST_STREAM_MODE。
- streamConfig
- 视频小流的配置。详见 SimulcastStreamConfig。信息当
mode设置为DISABLE_SIMULCAST_STREAM时,设置streamConfig不生效。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setDualStreamModeEx
设置发送端的多质量层级视频流模式。
virtual int setDualStreamModeEx(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig, const RtcConnection& connection) = 0;
SDK 默认在发送端开启视频小流自适应模式(AUTO_SIMULCAST_STREAM),即发送端不会主动发送视频小流。角色为主播的接收端可以通过调用 setRemoteVideoStreamTypeEx 发起视频小流请求,发送端在收到请求后会自动开始发送视频小流。 如果你希望修改此行为,可以调用此方法并将 mode 设置为 DISABLE_SIMULCAST_STREAM(从不发送视频小流)或 ENABLE_SIMULCAST_STREAM(始终发送视频小流)。 如果你希望在修改后恢复默认行为,可以再次调用此方法并将 mode 设置为 AUTO_SIMULCAST_STREAM。
- 当调用该方法并将
mode设置为DISABLE_SIMULCAST_STREAM时,效果等同于调用enableDualStreamModeEx(false)。 - 当调用该方法并将
mode设置为ENABLE_SIMULCAST_STREAM时,效果等同于调用enableDualStreamModeEx(true)。 - 两个方法均可在加入频道前或后调用。如果两个方法都被调用,则以后调用的方法设置优先生效。
适用场景
该方法适用于多频道场景。
参数
- mode
- 视频流的发送模式,详见 SIMULCAST_STREAM_MODE。
- streamConfig
- 视频小流的配置。详见 SimulcastStreamConfig。信息当
mode设置为DISABLE_SIMULCAST_STREAM时,设置该参数无效。 - connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setRemoteDefaultVideoStreamType
设置默认订阅的视频流类型。
virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType) = 0;
setDualStreamMode 时的具体设置,接收端调用此方法的场景如下: - SDK 默认在发送端开启视频小流自适应模式(
AUTO_SIMULCAST_STREAM),即仅发送视频大流。此时,仅角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求,会自动开始发送视频小流。此时,频道内所有用户均可调用此方法切换为视频小流订阅模式。 - 如果发送端调用
setDualStreamMode并将mode设置为DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用此方法无效。 - 如果发送端调用
setDualStreamMode并将mode设置为ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端均可调用此方法切换为视频小流订阅模式。
调用时机
请在加入频道前调用此方法。
参数
- streamType
- 默认订阅的视频流类型,详见 VIDEO_STREAM_TYPE。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setRemoteVideoStreamType
设置要订阅的视频流类型。
virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType) = 0;
setDualStreamMode 时的具体设置,接收端调用该方法的场景如下: - SDK 默认在发送端启用视频小流自适应模式(
AUTO_SIMULCAST_STREAM),即默认只发送视频大流。只有角色为主播的接收端可以调用该方法发起视频小流请求。一旦发送端收到请求后,会自动开始发送视频小流。此时,频道内所有用户都可以调用该方法切换为订阅视频小流模式。 - 如果发送端调用
setDualStreamMode并将mode设置为DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用该方法无效。 - 如果发送端调用
setDualStreamMode并将mode设置为ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用该方法切换为订阅视频小流模式。
调用时机
你可以在加入频道前或加入频道后调用该方法
参数
- uid
- 用户 ID。
- streamType
- 视频流类型,详见 VIDEO_STREAM_TYPE。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setRemoteVideoStreamTypeEx
设置要订阅的视频流类型。
virtual int setRemoteVideoStreamTypeEx(uid_t uid, VIDEO_STREAM_TYPE streamType, const RtcConnection& connection) = 0;
- SDK 默认在发送端启用视频小流自适应模式(
AUTO_SIMULCAST_STREAM),即仅发送视频大流。此时,只有角色为主播的接收端可以调用此方法发起视频小流请求。一旦发送端收到请求,会自动开始发送视频小流。此时,频道内所有用户都可以调用此方法切换为视频小流订阅模式。 - 如果发送端调用
setDualStreamMode并将mode设置为DISABLE_SIMULCAST_STREAM(从不发送视频小流),则调用此方法无效。 - 如果发送端调用
setDualStreamMode并将mode设置为ENABLE_SIMULCAST_STREAM(始终发送视频小流),则主播和观众角色的接收端都可以调用此方法切换为视频小流订阅模式。
mode 设置为 DISABLE_SIMULCAST_STREAM,则调用此方法无效。你应在发送端重新调用 setDualStreamModeEx 并调整设置。适用场景
该方法适用于多频道场景。
参数
- uid
- 用户 ID。
- streamType
- 视频流类型,详见 VIDEO_STREAM_TYPE。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setRemoteVideoSubscriptionOptions
设置订阅远端视频流的选项。
virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options) = 0;
- 如果注册了 IVideoFrameObserver 观察器,默认订阅原始数据和编码数据;
- 如果注册了 IVideoEncodedFrameObserver 观察器,默认仅订阅编码数据;
- 如果同时注册了上述两种观察器,默认行为遵循最后注册的观察器。例如,如果最后注册的是 IVideoFrameObserver,则默认订阅原始数据和编码数据。
参数
- uid
- 远端用户的用户 ID。
- options
- 视频订阅选项。详见 VideoSubscriptionOptions。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setRemoteVideoSubscriptionOptionsEx
设置是否订阅远端用户的视频流。
virtual int setRemoteVideoSubscriptionOptionsEx(uid_t uid, const VideoSubscriptionOptions& options, const RtcConnection& connection) = 0;
当远端用户开启双流模式时,可以调用该方法设置是否订阅该远端用户的视频流及其具体选项。
适用场景
该方法适用于多频道场景。
参数
- uid
- 远端用户 ID。
- options
- 视频订阅选项。详见 VideoSubscriptionOptions。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setSubscribeAudioAllowlist
设置音频流订阅的白名单。
virtual int setSubscribeAudioAllowlist(uid_t* uidList, int uidNumber) = 0;
- 你可以在加入频道前或加入频道后调用此方法。
- 白名单不受 muteRemoteAudioStream、muteAllRemoteAudioStreams 和 ChannelMediaOptions 中的
autoSubscribeAudio设置的影响。 - 一旦设置了订阅白名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
- 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
参数
- uidList
- 你希望订阅的用户 ID 列表。如果你想订阅某个用户的音频流,请将该用户的用户 ID 添加到该列表中。如果你想将某个用户从白名单中移除,需要调用 setSubscribeAudioAllowlist 方法更新该列表,即仅保留你希望订阅的用户 ID。
- uidNumber
- 用户 ID 列表中的用户数量。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setSubscribeAudioAllowlistEx
设置音频流订阅白名单。
virtual int setSubscribeAudioAllowlistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0;
- 你可以在加入频道前或加入频道后调用此方法。
- 该白名单不受 muteRemoteAudioStream、muteAllRemoteAudioStreams 和 ChannelMediaOptions 中的
autoSubscribeAudio设置的影响。 - 一旦设置了订阅白名单,即使你离开当前频道并重新加入,该设置仍然有效。
- 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
适用场景
该方法适用于多频道场景。
参数
- uidList
- 你希望订阅的用户 ID 列表。如果你想订阅某个用户的音频流,请将该用户的 ID 添加到该列表中。如果你想将某个用户从白名单中移除,需要调用 setSubscribeAudioAllowlist 方法更新用户 ID 列表;也就是说,你只需在新的用户 ID 列表中添加你希望订阅的用户的用户 ID。
- uidNumber
- 用户 ID 列表中的用户数量。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setSubscribeAudioBlocklist
设置不订阅的音频流用户黑名单。
virtual int setSubscribeAudioBlocklist(uid_t* uidList, int uidNumber) = 0;
- 你可以在加入频道前或加入频道后调用此方法。
- 黑名单设置不受 muteRemoteAudioStream、muteAllRemoteAudioStreams 和 ChannelMediaOptions 中
autoSubscribeAudio的影响。 - 一旦设置了订阅黑名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
- 如果某个用户同时被加入白名单和黑名单,仅黑名单生效。
参数
- uidList
- 不希望订阅其音频流的用户 ID 列表。要将某个用户从黑名单中移除,需要调用 setSubscribeAudioBlocklist 方法更新该列表,即仅在新的列表中保留不希望订阅的用户 ID。
- uidNumber
- 用户 ID 列表中的用户数量。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setSubscribeAudioBlocklistEx
设置不订阅的音频流用户黑名单。
virtual int setSubscribeAudioBlocklistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0;
- 你可以在加入频道前或加入频道后调用此方法。
- 黑名单设置不受 muteRemoteAudioStream、muteAllRemoteAudioStreams 和 ChannelMediaOptions 中
autoSubscribeAudio的影响。 - 一旦设置了订阅黑名单,即使离开当前频道并重新加入频道,该设置仍然有效。
- 如果某个用户同时被加入白名单和黑名单,则仅黑名单生效。
适用场景
该方法适用于多频道场景。
参数
- uidList
- 不希望订阅其音频流的用户 ID 列表。如果你希望将某个用户从黑名单中移除,需要调用 setSubscribeAudioBlocklist 方法更新用户 ID 列表。
- uidNumber
- 用户 ID 列表中的用户数量。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setSubscribeVideoAllowlist
设置视频流订阅的允许列表。
virtual int setSubscribeVideoAllowlist(uid_t* uidList, int uidNumber) = 0;
- 你可以在加入频道前或加入频道后调用此方法。
- 允许列表不受 muteRemoteVideoStream、muteAllRemoteVideoStreams 和 ChannelMediaOptions 中的
autoSubscribeAudio设置的影响。 - 一旦设置了订阅的允许列表,即使你离开当前频道并重新加入频道,该设置仍然有效。
- 如果某个用户同时被添加到允许列表和阻止列表中,则仅阻止列表生效。
参数
- uidList
- 希望订阅的视频流用户的用户 ID 列表。如果你想移除某个用户,需要调用 setSubscribeVideoAllowlist 更新该列表,仅保留你希望订阅的用户 ID。
- uidNumber
- 用户 ID 列表中的用户数量。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setSubscribeVideoAllowlistEx
设置视频流订阅的白名单。
virtual int setSubscribeVideoAllowlistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0;
你可以调用该方法指定希望订阅的用户的视频流。
- 你可以在加入频道前或加入频道后调用此方法。
- 该白名单不受 muteRemoteVideoStream、muteAllRemoteVideoStreams 和 ChannelMediaOptions 中的
autoSubscribeAudio设置的影响。 - 一旦设置了订阅白名单,即使你离开当前频道并重新加入,该设置仍然有效。
- 如果某个用户同时被添加到白名单和黑名单中,则仅黑名单生效。
适用场景
该方法适用于多频道场景。
参数
- uidList
- 你希望订阅的视频流所属用户的用户 ID 列表。如果你希望订阅某个用户的视频流,请将该用户的用户 ID 添加到此列表中。如果你希望将某个用户从白名单中移除,需要调用 setSubscribeVideoAllowlist 方法更新用户 ID 列表。这意味着你只需在新的用户 ID 列表中添加你希望订阅的用户的
uid。 - uidNumber
- 用户 ID 列表中的用户数量。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setSubscribeVideoBlocklist
设置视频流订阅的黑名单。
virtual int setSubscribeVideoBlocklist(uid_t* uidList, int uidNumber) = 0;
- 你可以在加入频道前或加入频道后调用此方法。
- 黑名单不受 muteRemoteVideoStream、muteAllRemoteVideoStreams 和 ChannelMediaOptions 中的
autoSubscribeAudio设置的影响。 - 一旦设置了订阅黑名单,即使离开当前频道并重新加入,该设置仍然有效。
- 如果某个用户同时出现在白名单和黑名单中,只有黑名单生效。
参数
- uidList
- 不希望订阅其视频流的用户 ID 列表。如果你希望将某个用户从黑名单中移除,需要调用 setSubscribeVideoBlocklist 更新该列表,即只需在新的用户 ID 列表中添加不希望订阅的用户的用户 ID。
- uidNumber
- 用户 ID 列表中的用户数量。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
setSubscribeVideoBlocklistEx
设置不订阅的视频流用户名单。
virtual int setSubscribeVideoBlocklistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0;
- 你可以在加入频道前或加入频道后调用此方法。
- 该阻止名单不受 muteRemoteVideoStream、muteAllRemoteVideoStreams 和 ChannelMediaOptions 中的
autoSubscribeAudio设置的影响。 - 一旦设置了订阅的阻止名单,即使你离开当前频道并重新加入频道,该设置仍然有效。
- 如果某个用户同时被加入允许名单和阻止名单,仅阻止名单生效。
适用场景
该方法适用于多频道场景。
参数
- uidList
- 不希望订阅其视频流的用户 ID 列表。若要将某个用户从阻止名单中移除,需要调用 setSubscribeVideoBlocklist 方法更新用户 ID 列表,即在新的列表中仅包含你仍希望阻止的视频流用户的用户 ID。
- uidNumber
- 用户 ID 列表中的用户数量。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
onAudioPublishStateChanged
音频发布状态发生变化时触发的回调。
virtual void onAudioPublishStateChanged(const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
参数
- channel
- 频道名。
- oldState
- 之前的音频发布状态,详见 STREAM_PUBLISH_STATE。
- newState
- 当前的音频发布状态,详见 STREAM_PUBLISH_STATE。
- elapseSinceLastState
- 从上一个状态切换到当前状态所经过的时间(毫秒)。
onAudioSubscribeStateChanged
音频订阅状态发生变化回调。
virtual void onAudioSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
参数
- channel
- 频道名。
- uid
- 远端用户 ID。
- oldState
- 之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE。
- newState
- 当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE。
- elapseSinceLastState
- 从前一个状态到当前状态所经历的时间(毫秒)。
onVideoSubscribeStateChanged
视频订阅状态发生变化回调。
virtual void onVideoSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
参数
- channel
- 频道名。
- uid
- 远端用户 ID。
- oldState
- 之前的视频订阅状态,详见 STREAM_SUBSCRIBE_STATE。
- newState
- 当前的视频订阅状态,详见 STREAM_SUBSCRIBE_STATE。
- elapseSinceLastState
- 从上一个状态变更到当前状态所经过的时间(毫秒)。