2024/05/27 11:27:07
更改音视频流传输状态
用户成功连接 Connection 并开始音视频流传输后,可以暂停向指定或所有 Connection 发送流,也可以暂停接收指定或所有 Connection 的流,从而灵活调整音视频流传输状态。本文介绍如何更改音视频流传输状态。
发送端实现
调用以下方法暂停或恢复发送本地音视频流:
muteLocalAudio
:暂停发送本地音频流。muteLocalVideo
:暂停发送本地视频流。
你既可以通过传入 Connection ID 暂停或恢复向指定 Connection 发送数据;也可以将 Connection ID 设置为 0,暂停或恢复向所有 Connection 发送数据。
示例代码如下:
Java
// 暂停向指定 Connection 发送音频流
mRtcService.muteLocalAudio(12345, 1);
// 恢复向指定 Connection 发送音频流
mRtcService.muteLocalAudio(12345, 0);
// 暂停向指定 Connection 发送视频流
mRtcService.muteLocalVideo(12345, 1);
// 恢复向指定 Connection 发送视频流
mRtcService.muteLocalVideo(12345, 0);
接收端实现
提示远端流发送状态
发送端调用 muteLocalAudio
或 muteLocalVideo
方法更改本地音视频流传输状态后,同一 Connection ID 下的接收端会相应地收到以下回调:
onUserMuteAudio
:提示远端用户是否暂停发送音频流。onUserMuteVideo
:提示远端用户是否暂停发送视频流。
示例代码如下:
Java
@Override
public void onUserMuteAudio(int connId, int uid, boolean muted) {
RtsaLiteDemo.d(TAG,
"<onUserMuteAudio> connId=" + connId + ", uid=" + uid + ", muted=" + muted);
}
@Override
public void onUserMuteVideo(int connId, int uid, boolean muted) {
RtsaLiteDemo.d(TAG,
"<onUserMuteVideo> connId=" + connId + ", uid=" + uid + ", muted=" + muted);
}
暂停/恢复接收远端流
调用以下方法暂停或恢复接收指定 Connection ID 中指定用户的音视频流:
muteRemoteAudio
:暂停接收远端音频流。muteRemoteVideo
:暂停接收远端视频流。
你既可以通过填写 Connection ID 暂停接收指定 Connection ID 的数据,也可以将 Connection ID 设置为 0 暂停接收所有 Connection 的数据。
示例代码如下:
Java
int remote_uid = 789;
// 暂停接收指定 Connection 中远端用户的音频流
mRtcService.muteRemoteAudio (12345, remote_uid, 1);
// 恢复接收指定 Connection 中远端用户的音频流
mRtcService.muteRemoteAudio (12345, remote_uid, 0);
// 暂停接收指定 Connection 中远端用户的视频流
mRtcService.muteRemoteVideo (12345, remote_uid, 1);
// 恢复接收指定 Connection 中远端用户的视频流
mRtcService.muteRemoteVideo (12345, remote_uid, 0);
API 参考
开发过程中,你还可以参考如下文档,了解各 API 的详细信息: