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