发布和订阅
MuteAllRemoteAudioStreams
取消或恢复订阅所有远端用户的音频流。
public abstract int MuteAllRemoteAudioStreams(bool mute);
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
SDK 默认在加入频道时订阅所有远端用户的音频流,如果要修改此行为,可以在调用 JoinChannel [2/2] 加入频道时设置 autoSubscribeAudio 为 false
,即可在加入频道时取消订阅所有用户的音频流。
调用时机
该方法需要在加入频道后调用。
调用限制
如果在调用该方法之后又调用了 EnableAudio 或 DisableAudio,则后调用的方法会生效。
参数
- mute
- 是否取消订阅所有远端用户的音频流:
true
: 取消订阅所有远端用户的音频流。false
:(默认)订阅所有远端用户的音频流。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteAllRemoteAudioStreamsEx
取消或恢复订阅所有远端用户的音频流。
public abstract int MuteAllRemoteAudioStreamsEx(bool mute, RtcConnection connection);
详情
成功调用该方法后,本地用户会取消或恢复订阅远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
- 该方法需要在加入频道后调用。
- 如果需要在加入频道前设置默认不订阅远端用户音频流,可以在调用 JoinChannel [2/2] 加入频道时设置 autoSubscribeAudio 为
false
。
参数
- mute
- 是否取消订阅所有远端用户的音频流:
true
: 取消订阅所有远端用户的音频流。false
:(默认)订阅所有远端用户的音频流。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteAllRemoteVideoStreams
取消或恢复订阅所有远端用户的视频流。
public abstract int MuteAllRemoteVideoStreams(bool mute);
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
SDK 默认在加入频道时订阅所有远端用户的视频流,如果要修改此行为,可以在调用 JoinChannel [2/2] 加入频道时设置 autoSubscribeVideo 为 false
,即可在加入频道时取消订阅所有用户的视频流。
调用时机
该方法需要在加入频道后调用。
调用限制
如果在调用该方法之后又调用了 EnableVideo 或 DisableVideo,则后调用的方法会生效。
参数
- mute
- 是否取消订阅所有远端用户的视频流。
true
: 取消订阅所有用户的视频流。false
:(默认)订阅所有用户的视频流。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteAllRemoteVideoStreamsEx
取消或恢复订阅所有远端用户的视频流。
public abstract int MuteAllRemoteVideoStreamsEx(bool mute, RtcConnection connection);
详情
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
参数
- mute
- 是否取消订阅所有远端用户的视频流。
true
: 取消订阅所有用户的视频流。false
:(默认)订阅所有用户的视频流。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteLocalAudioStream
取消或恢复发布本地音频流。
public abstract int MuteLocalAudioStream(bool mute);
该方法用于控制是否发布本地采集的音频流。如果不发布本地采集的音频流,也不会禁用音频采集设备,所以不影响音频的采集状态。
调用时机
加入频道前后均可调用。
调用限制
无。
相关回调
成功调用该方法后,本地会触发 OnAudioPublishStateChanged 回调;远端会触发 OnUserMuteAudio 回调和 OnRemoteAudioStateChanged 回调。
参数
- mute
- 是否取消发布本地音频流。
true
: 取消发布。false
:(默认)发布。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteLocalAudioStreamEx
取消或恢复发布本地音频流。
public abstract int MuteLocalAudioStreamEx(bool mute, RtcConnection connection);
详情
成功调用该方法后,远端会触发 OnUserMuteAudio 回调和 OnRemoteAudioStateChanged 回调。
参数
- mute
- 是否取消发布本地音频流。
true
: 取消发布。false
:(默认)发布。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteLocalVideoStream
取消或恢复发布本地视频流。
public abstract int MuteLocalVideoStream(bool mute);
该方法用于控制是否发布本地采集的视频流。如果不发布本地采集的视频流,也不会禁用视频采集设备,所以不影响视频的采集状态。
相比于调用 EnableLocalVideo(false
) 关闭本地视频流采集、从而取消发布本地视频流的方法,该方法响应速度更快。
调用时机
加入频道前后均可调用。
调用限制
无。
相关回调
成功调用该方法后,本地会触发 OnVideoPublishStateChanged 回调;远端会触发 OnUserMuteVideo 回调和 OnRemoteVideoStateChanged 回调。
参数
- mute
- 是否取消发送本地视频流。
true
: 取消发送本地视频流。false
: (默认)发送本地视频流。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteLocalVideoStreamEx
取消或恢复发布本地视频流。
public abstract int MuteLocalVideoStreamEx(bool mute, RtcConnection connection);
详情
成功调用该方法后,远端会触发 OnUserMuteVideo 回调。
- 该方法不影响视频采集状态,没有禁用摄像头。
参数
- mute
- 是否取消发送本地视频流。
true
: 取消发送本地视频流。false
: (默认)发送本地视频流。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteRemoteAudioStream
取消或恢复订阅指定远端用户的音频流。
public abstract int MuteRemoteAudioStream(uint uid, bool mute);
调用时机
该方法需要在加入频道后调用。
调用限制
无。
相关回调
成功调用该方法后,本地会触发 OnAudioSubscribeStateChanged 回调。
参数
- uid
- 指定用户的用户 ID。
- mute
- 是否取消订阅指定远端用户的音频流。
true
: 取消订阅指定用户的音频流。false
:(默认)订阅指定用户的音频流。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteRemoteAudioStreamEx
停止/恢复接收指定的音频流。
public abstract int MuteRemoteAudioStreamEx(uint uid, bool mute, RtcConnection connection);
详情
参数
- uid
- 指定用户的 ID。
- mute
是否停止接收指定音频流:
true
: 停止接收指定音频流。false
:(默认)继续接收指定音频流。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
MuteRemoteVideoStream
取消或恢复订阅指定远端用户的视频流。
public abstract int MuteRemoteVideoStream(uint uid, bool mute);
调用时机
该方法需要在加入频道后调用。
调用限制
无。
相关回调
成功调用该方法后,本地会触发 OnVideoSubscribeStateChanged 回调。
参数
- uid
- 指定用户的用户 ID。
- mute
- 是否取消订阅指定远端用户的视频流。
true
: 取消订阅指定用户的视频流。false
: (默认)订阅指定用户的视频流。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
MuteRemoteVideoStreamEx
停止/恢复接收指定的视频流。
public abstract int MuteRemoteVideoStreamEx(uint uid, bool mute, RtcConnection connection);
详情
该方法停止/恢复接收某一个指定远端用户的视频流。在加入频道前或后都可以调用。该方法的设置在离开频道后失效。
参数
- uid
远端用户的 ID。
- mute
- 是否停止接收某个远端用户的视频:
true
: 停止接收。false
: (默认)恢复接收。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
SetRemoteVideoSubscriptionOptions
设置远端视频流的订阅选项。
public abstract int SetRemoteVideoSubscriptionOptions(uint uid, VideoSubscriptionOptions options);
详情
当远端发送双流时,可调用此方法来设置远端视频流的订阅选项。
- 如果你只注册了 IVideoFrameObserver 对象,则默认订阅原始视频数据和编码后的视频数据 (效果等同于 encodedFrameOnly 设置为
false
)。 - 如果你只注册了 IVideoEncodedFrameObserver 对象,则默认只订阅编码后的视频数据 (效果等同于 encodedFrameOnly 设置为
true
)。 - 如果你先后注册了 IVideoFrameObserver 和 IVideoEncodedFrameObserver 对象,则默认订阅原始视频数据和编码后的视频数据 (效果等同于 encodedFrameOnly 设置为
false
)。 - 如果你先调用该方法设置了 options 参数、然后再注册 IVideoFrameObserver 或 IVideoEncodedFrameObserver 对象,则需要再次调用该方法并按照以上两项描述设置 options 参数,以获得预期的效果。
- 调用 JoinChannel [2/2] 加入频道时设置 autoSubscribeVideo 为
false
。 - 在收到 OnUserJoined 回调后调用该方法,设置对指定远端用户视频流的订阅选项。
- 调用 MuteRemoteVideoStream 方法,开始恢复订阅指定远端用户的视频流。如果你在上一步中将 encodedFrameOnly 设置为
true
,SDK 会在本地触发 OnEncodedVideoFrameReceived 回调,上报接收到的编码后视频帧信息。
参数
- uid
- 远端用户 ID。
- options
- 视频流的订阅设置,详见 VideoSubscriptionOptions。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetRemoteVideoSubscriptionOptionsEx
设置远端视频流的订阅选项。
public abstract int SetRemoteVideoSubscriptionOptionsEx(uint uid, VideoSubscriptionOptions options, RtcConnection connection);
详情
当远端发送双流时,可调用此方法来设置远端视频流的订阅选项。
参数
- uid
- 远端用户 ID。
- options
- 视频流的订阅设置,详见 VideoSubscriptionOptions。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetSubscribeAudioAllowlist
设置音频订阅白名单。
public abstract int SetSubscribeAudioAllowlist(uint[] uidList, int uidNumber);
详情
你可以调用该方法指定想要订阅的音频流。
- 该方法在加入频道前后均可调用。
- 音频订阅白名单不受 MuteRemoteAudioStream、MuteAllRemoteAudioStreams 以及 ChannelMediaOptions 中的 autoSubscribeAudio 的影响。
- 设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
- uidList
音频订阅白名单的用户 ID 列表。
如果你想指定订阅某一发流用户的音频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除,需要重新调用 SetSubscribeAudioAllowlist 方法更新音频订阅白名单的用户 ID 列表,使其不包含你想移除的用户的 uid。
- uidNumber
- 白名单用户 ID 列表中的用户数量。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetSubscribeAudioAllowlistEx
设置音频订阅白名单。
public abstract int GetCacheDir(out string path, int length);
详情
你可以调用该方法指定想要订阅的音频流。
- 该方法在加入频道前后均可调用。
- 音频订阅白名单不受 MuteRemoteAudioStream、MuteAllRemoteAudioStreams 以及 ChannelMediaOptions 中的 autoSubscribeAudio 的影响。
- 设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
- uidList
音频订阅白名单的用户 ID 列表。
如果你想指定订阅某一发流用户的音频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除,需要重新调用 SetSubscribeAudioAllowlist 方法更新音频订阅白名单的用户 ID 列表,使其不包含你想移除的用户的 uid。
- uidNumber
- 白名单用户 ID 列表中的用户数量。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetSubscribeAudioBlocklist
设置音频订阅黑名单。
public abstract int SetSubscribeAudioBlocklist(uint[] uidList, int uidNumber);
详情
你可以调用该方法指定不订阅的音频流。
- 该方法在加入频道前后均可调用。
- 音频订阅黑名单不受 MuteRemoteAudioStream、MuteAllRemoteAudioStreams 以及 ChannelMediaOptions 中的 autoSubscribeAudio 影响。
- 设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
- uidList
订阅黑名单的用户 ID 列表。
如果你想指定不订阅某一发流用户的音频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除,需要重新调用 SetSubscribeAudioBlocklist 方法更新订阅黑名单的用户 ID 列表,使其不包含你想移除的用户的 uid。
- uidNumber
- 黑名单用户 ID 列表中的用户数量。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetSubscribeAudioBlocklistEx
设置音频订阅黑名单。
public abstract int SetSubscribeAudioBlocklistEx(uint[] uidList, int uidNumber, RtcConnection connection);
详情
你可以调用该方法指定不订阅的音频流。
- 该方法在加入频道前后均可调用。
- 音频订阅黑名单不受 MuteRemoteAudioStream、MuteAllRemoteAudioStreams 以及 ChannelMediaOptions 中的 autoSubscribeAudio 影响。
- 设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
- uidList
订阅黑名单的用户 ID 列表。
如果你想指定不订阅某一发流用户的音频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除,需要重新调用 SetSubscribeAudioBlocklist 方法更新订阅黑名单的用户 ID 列表,使其不包含你想移除的用户的 uid。
- uidNumber
- 黑名单用户 ID 列表中的用户数量。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetSubscribeVideoAllowlist
设置视频订阅白名单。
public abstract int SetSubscribeVideoAllowlist(uint[] uidList, int uidNumber);
详情
你可以调用该方法指定想要订阅的视频流。
- 该方法在加入频道前后均可调用。
- 视频订阅白名单不受 MuteRemoteVideoStream、MuteAllRemoteVideoStreams 以及 ChannelMediaOptions 中的 autoSubscribeVideo 的影响。
- 设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
- uidList
视频订阅白名单的用户 ID 列表。
如果你想指定仅订阅某一发流用户的视频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除,需要重新调用 SetSubscribeVideoAllowlist 方法更新音频订阅白名单的用户 ID 列表,使其不包含你想移除的用户的 uid。
- uidNumber
- 白名单用户 ID 列表中的用户数量。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetSubscribeVideoAllowlistEx
设置视频订阅白名单。
public abstract int SetSubscribeVideoAllowlistEx(uint[] uidList, int uidNumber, RtcConnection connection);
详情
你可以调用该方法指定想要订阅的视频流。
- 该方法在加入频道前后均可调用。
- 视频订阅白名单不受 MuteRemoteVideoStream、MuteAllRemoteVideoStreams 以及 ChannelMediaOptions 中的 autoSubscribeVideo 的影响。
- 设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
- uidList
视频订阅白名单的用户 ID 列表。
如果你想指定仅订阅某一发流用户的视频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除,需要重新调用 SetSubscribeVideoAllowlist 方法更新音频订阅白名单的用户 ID 列表,使其不包含你想移除的用户的 uid。
- uidNumber
- 白名单用户 ID 列表中的用户数量。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetSubscribeVideoBlocklist
设置视频订阅黑名单。
public abstract int SetSubscribeVideoBlocklist(uint[] uidList, int uidNumber);
详情
你可以调用该方法指定不订阅的视频流。
- 该方法在加入频道前后均可调用。
- 视频订阅黑名单不受 MuteRemoteVideoStream、MuteAllRemoteVideoStreams 以及 ChannelMediaOptions 中的 autoSubscribeVideo 的影响。
- 设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
- uidList
视频订阅黑名单的用户 ID 列表。
如果你想指定不订阅某一发流用户的视频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除,需要重新调用 SetSubscribeVideoBlocklist 方法更新订阅黑名单的用户 ID 列表,使其不包含你想移除的用户的 uid。
- uidNumber
- 黑名单用户 ID 列表中的用户数量。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetSubscribeVideoBlocklistEx
设置视频订阅黑名单。
public abstract int SetSubscribeVideoBlocklistEx(uint[] uidList, int uidNumber, RtcConnection connection);
详情
你可以调用该方法指定不订阅的视频流。
- 该方法在加入频道前后均可调用。
- 视频订阅黑名单不受 MuteRemoteVideoStream、MuteAllRemoteVideoStreams 以及 ChannelMediaOptions 中的 autoSubscribeVideo 的影响。
- 设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
- 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
- uidList
视频订阅黑名单的用户 ID 列表。
如果你想指定不订阅某一发流用户的视频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除,需要重新调用 SetSubscribeVideoBlocklist 方法更新订阅黑名单的用户 ID 列表,使其不包含你想移除的用户的 uid。
- uidNumber
- 黑名单用户 ID 列表中的用户数量。
- connection
- Connection 信息。详见 RtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
OnAudioPublishStateChanged
音频发布状态改变回调。
public virtual void OnAudioPublishStateChanged(string channel, STREAM_PUBLISH_STATE oldState,
STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
参数
- channel
- 频道名。
- oldState
- 之前的发布状态,详见 STREAM_PUBLISH_STATE。
- newState
- 当前的发布状态,详见 STREAM_PUBLISH_STATE。
- elapseSinceLastState
- 两次状态变化时间间隔(毫秒)。
OnAudioSubscribeStateChanged
音频订阅状态发生改变回调。
public virtual void OnAudioSubscribeStateChanged(string channel, uint uid, STREAM_SUBSCRIBE_STATE oldState,
STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
参数
- channel
- 频道名。
- uid
- 远端用户的 ID。
- oldState
- 之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE。
- newState
- 当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE。
- elapseSinceLastState
- 两次状态变化时间间隔(毫秒)。
OnVideoSubscribeStateChanged
视频订阅状态发生改变回调。
public virtual void OnVideoSubscribeStateChanged(string channel, uint uid, STREAM_SUBSCRIBE_STATE oldState,
STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
参数
- channel
- 频道名。
- uid
- 远端用户的 ID。
- oldState
- 之前的订阅状态,详见 STREAM_SUBSCRIBE_STATE。
- newState
- 当前的订阅状态,详见 STREAM_SUBSCRIBE_STATE。
- elapseSinceLastState
- 两次状态变化时间间隔(毫秒)。