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