发布和订阅
muteAllRemoteAudioStreams
取消或恢复订阅所有远端用户的音频流。
virtual int muteAllRemoteAudioStreams(bool mute) = 0;
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
注意:
-
该方法需要在加入频道后调用。
-
如果需要在加入频道前设置默认不订阅远端用户音频流,可以在调用
joinChannel [2/2]
加入频道时设置autoSubscribeAudio
为false
。 -
该方法的推荐设置详见设置订阅状态。
参数
参数名 | 描述 |
---|---|
mute | 是否取消订阅所有远端用户的音频流:
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteAllRemoteAudioStreamsEx
取消或恢复订阅所有远端用户的音频流。
virtual int muteAllRemoteAudioStreamsEx(bool mute, const RtcConnection& connection) = 0;
成功调用该方法后,本地用户会取消或恢复订阅远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
注意:
-
该方法需要在加入频道后调用。
-
如果需要在加入频道前设置默认不订阅远端用户音频流,可以在调用
joinChannel [2/2]
加入频道时设置autoSubscribeAudio
为false
。 -
该方法的推荐设置详见设置订阅状态。
参数
参数名 | 描述 |
---|---|
mute | 是否取消订阅所有远端用户的音频流:
|
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteAllRemoteVideoStreams
取消或恢复订阅所有远端用户的视频流。
virtual int muteAllRemoteVideoStreams(bool mute) = 0;
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
注意:
-
该方法需要在加入频道后调用。
-
如果需要在加入频道前设置默认不订阅远端用户视频流,可以在调用
joinChannel [2/2]
加入频道时设置autoSubscribeVideo
为false
。
参数
参数名 | 描述 |
---|---|
mute | 是否取消订阅所有远端用户的视频流。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteAllRemoteVideoStreamsEx
取消或恢复订阅所有远端用户的视频流。
virtual int muteAllRemoteVideoStreamsEx(bool mute, const RtcConnection& connection) = 0;
v4.1.0
成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
参数
参数名 | 描述 |
---|---|
mute | 是否取消订阅所有远端用户的视频流。
|
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteLocalAudioStream
取消或恢复发布本地音频流。
virtual int muteLocalAudioStream(bool mute) = 0;
注意: 该方法不影响音频采集状态,因为没有禁用音频采集设备。
成功调用该方法后,远端会触发 onUserMuteAudio
回调和 onRemoteAudioStateChanged
回调。
参数
参数名 | 描述 |
---|---|
mute | 是否取消发布本地音频流。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteLocalAudioStreamEx
取消或恢复发布本地音频流。
virtual int muteLocalAudioStreamEx(bool mute, const RtcConnection& connection) = 0;
注意: 该方法不影响音频采集状态,因为没有禁用音频采集设备。
成功调用该方法后,远端会触发 onUserMuteAudio
回调和 onRemoteAudioStateChanged
回调。
参数
参数名 | 描述 |
---|---|
mute | 是否取消发布本地音频流。
|
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteLocalVideoStream
取消或恢复发布本地视频流。
virtual int muteLocalVideoStream(bool mute) = 0;
成功调用该方法后,远端会触发 onUserMuteVideo
回调。
注意:
-
相比于
enableLocalVideo
(false
) 用于控制本地视频流发送的方法,该方法响应速度更快。 -
该方法不影响视频采集状态,没有禁用摄像头。
参数
参数名 | 描述 |
---|---|
mute | 是否取消发送本地视频流。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteLocalVideoStreamEx
取消或恢复发布本地视频流。
virtual int muteLocalVideoStreamEx(bool mute, const RtcConnection& connection) = 0;
v4.1.0
成功调用该方法后,远端会触发 onUserMuteVideo
回调。
注意:
- 该方法不影响视频采集状态,没有禁用摄像头。
参数
参数名 | 描述 |
---|---|
mute | 是否取消发送本地视频流。
|
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteRemoteAudioStream
muteRemoteAudioStreamEx
停止/恢复接收指定的音频流。
virtual int muteRemoteAudioStreamEx(uid_t uid, bool mute, const RtcConnection& connection) = 0;
参数
参数名 | 描述 |
---|---|
uid | 指定用户的 ID。 |
mute | 是否停止接收指定音频流:
|
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
muteRemoteVideoStream
muteRemoteVideoStreamEx
停止/恢复接收指定的视频流。
virtual int muteRemoteVideoStreamEx(uid_t uid, bool mute, const RtcConnection& connection) = 0;
该方法停止/恢复接收某一个指定远端用户的视频流。在加入频道前或后都可以调用。该方法的设置在离开频道后失效。
参数
参数名 | 描述 |
---|---|
uid | 远端用户的 ID。 |
mute | 是否停止接收某个远端用户的视频:
|
connection | Connection 信息。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
setRemoteVideoSubscriptionOptions
设置远端视频流的订阅选项。
virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options) = 0;
当远端发送双流时,可调用此方法来设置远端视频流的订阅选项。
-
如果你只注册了
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 | 视频流的订阅设置,详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setRemoteVideoSubscriptionOptionsEx
设置远端视频流的订阅选项。
virtual int setRemoteVideoSubscriptionOptionsEx(uid_t uid, const VideoSubscriptionOptions& options, const RtcConnection& connection) = 0;
当远端发送双流时,可调用此方法来设置远端视频流的订阅选项。
参数
参数名 | 描述 |
---|---|
uid | 远端用户 ID。 |
options | 视频流的订阅设置,详见 |
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setSubscribeAudioAllowlist
设置音频订阅白名单。
virtual int setSubscribeAudioAllowlist(uid_t* uidList, int uidNumber) = 0;
你可以调用该方法指定想要订阅的音频流。
注:
-
该方法在加入频道前后均可调用。
-
音频订阅白名单不受
muteRemoteAudioStream
、muteAllRemoteAudioStreams
以及ChannelMediaOptions
中的autoSubscribeAudio
的影响。 -
设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
-
如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
参数名 | 描述 |
---|---|
uidList | 音频订阅白名单的用户 ID 列表。 |
uidNumber | 白名单用户 ID 列表中的用户数量。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setSubscribeAudioAllowlistEx
设置音频订阅白名单。
virtual int setSubscribeAudioAllowlistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0;
你可以调用该方法指定想要订阅的音频流。
注:
-
该方法在加入频道前后均可调用。
-
音频订阅白名单不受
muteRemoteAudioStream
、muteAllRemoteAudioStreams
以及ChannelMediaOptions
中的autoSubscribeAudio
的影响。 -
设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
-
如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
参数名 | 描述 |
---|---|
uidList | 音频订阅白名单的用户 ID 列表。 |
uidNumber | 白名单用户 ID 列表中的用户数量。 |
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setSubscribeAudioBlocklist
设置音频订阅黑名单。
virtual int setSubscribeAudioBlocklist(uid_t* uidList, int uidNumber) = 0;
你可以调用该方法指定不订阅的音频流。
注意:
-
该方法在加入频道前后均可调用。
-
音频订阅黑名单不受
muteRemoteAudioStream
、muteAllRemoteAudioStreams
以及ChannelMediaOptions
中的autoSubscribeAudio
影响。 -
设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
-
如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
参数名 | 描述 |
---|---|
uidList | 订阅黑名单的用户 ID 列表。 |
uidNumber | 黑名单用户 ID 列表中的用户数量。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setSubscribeAudioBlocklistEx
设置音频订阅黑名单。
virtual int setSubscribeAudioBlocklistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0;
你可以调用该方法指定不订阅的音频流。
注意:
-
该方法在加入频道前后均可调用。
-
音频订阅黑名单不受
muteRemoteAudioStream
、muteAllRemoteAudioStreams
以及ChannelMediaOptions
中的autoSubscribeAudio
影响。 -
设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
-
如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
参数名 | 描述 |
---|---|
uidList | 订阅黑名单的用户 ID 列表。 |
uidNumber | 黑名单用户 ID 列表中的用户数量。 |
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setSubscribeVideoAllowlist
设置视频订阅白名单。
virtual int setSubscribeVideoAllowlist(uid_t* uidList, int uidNumber) = 0;
你可以调用该方法指定想要订阅的视频流。
注:
-
该方法在加入频道前后均可调用。
-
视频订阅白名单不受
muteRemoteVideoStream
、muteAllRemoteVideoStreams
以及ChannelMediaOptions
中的autoSubscribeVideo
的影响。 -
设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
-
如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
参数名 | 描述 |
---|---|
uidList | 视频订阅白名单的用户 ID 列表。 |
uidNumber | 白名单用户 ID 列表中的用户数量。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setSubscribeVideoAllowlistEx
设置视频订阅白名单。
virtual int setSubscribeVideoAllowlistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0;
你可以调用该方法指定想要订阅的视频流。
注:
-
该方法在加入频道前后均可调用。
-
视频订阅白名单不受
muteRemoteVideoStream
、muteAllRemoteVideoStreams
以及ChannelMediaOptions
中的autoSubscribeVideo
的影响。 -
设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
-
如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
参数名 | 描述 |
---|---|
uidList | 视频订阅白名单的用户 ID 列表。 |
uidNumber | 白名单用户 ID 列表中的用户数量。 |
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setSubscribeVideoBlocklist
设置视频订阅黑名单。
virtual int setSubscribeVideoBlocklist(uid_t* uidList, int uidNumber) = 0;
你可以调用该方法指定不订阅的视频流。
注:
-
该方法在加入频道前后均可调用。
-
视频订阅黑名单不受
muteRemoteVideoStream
、muteAllRemoteVideoStreams
以及ChannelMediaOptions
中的autoSubscribeVideo
的影响。 -
设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
-
如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
参数名 | 描述 |
---|---|
uidList | 视频订阅黑名单的用户 ID 列表。 |
uidNumber | 黑名单用户 ID 列表中的用户数量。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setSubscribeVideoBlocklistEx
设置视频订阅黑名单。
virtual int setSubscribeVideoBlocklistEx(uid_t* uidList, int uidNumber, const RtcConnection& connection) = 0;
你可以调用该方法指定不订阅的视频流。
注:
-
该方法在加入频道前后均可调用。
-
视频订阅黑名单不受
muteRemoteVideoStream
、muteAllRemoteVideoStreams
以及ChannelMediaOptions
中的autoSubscribeVideo
的影响。 -
设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
-
如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。
参数
参数名 | 描述 |
---|---|
uidList | 视频订阅黑名单的用户 ID 列表。 |
uidNumber | 黑名单用户 ID 列表中的用户数量。 |
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
onAudioPublishStateChanged
音频发布状态改变回调。
virtual void onAudioPublishStateChanged(const char* channel,
STREAM_PUBLISH_STATE oldState,
STREAM_PUBLISH_STATE newState,
int elapseSinceLastState) {
(void)channel;
(void)oldState;
(void)newState;
(void)elapseSinceLastState;
}
参数
参数名 | 描述 |
---|---|
channel | 频道名。 |
oldState | 之前的发布状态,详见 |
newState | 当前的发布状态,详见 |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
onAudioSubscribeStateChanged
音频订阅状态发生改变回调。
virtual void onAudioSubscribeStateChanged(const char* channel,
uid_t uid,
STREAM_SUBSCRIBE_STATE oldState,
STREAM_SUBSCRIBE_STATE newState,
int elapseSinceLastState) {
(void)channel;
(void)uid;
(void)oldState;
(void)newState;
(void)elapseSinceLastState;
}
参数
参数名 | 描述 |
---|---|
channel | 频道名。 |
uid | 远端用户的 ID。 |
oldState | 之前的订阅状态,详见 |
newState | 当前的订阅状态,详见 |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |
onVideoSubscribeStateChanged
视频订阅状态发生改变回调。
virtual void onVideoSubscribeStateChanged(const char* channel,
uid_t uid,
STREAM_SUBSCRIBE_STATE oldState,
STREAM_SUBSCRIBE_STATE newState,
int elapseSinceLastState) {
(void)channel;
(void)uid;
(void)oldState;
(void)newState;
(void)elapseSinceLastState;
}
参数
参数名 | 描述 |
---|---|
channel | 频道名。 |
uid | 远端用户的 ID。 |
oldState | 之前的订阅状态,详见 |
newState | 当前的订阅状态,详见 |
elapseSinceLastState | 两次状态变化时间间隔(毫秒)。 |