2024/05/27 11:27:07
更改音视频流传输状态
用户成功连接 Connection 并开始音视频流传输后,可以暂停向指定或所有 Connection 发送流,也可以暂停接收指定或所有 Connection 的流,从而灵活调整音视频流传输状态。本文介绍如何更改音视频流传输状态。
发送端实现
调用以下方法暂停或恢复发送本地音视频流:
agora_rtc_mute_local_audio
:暂停发送本地音频流。agora_rtc_mute_local_video
:暂停发送本地视频流。
你既可以通过传入 Connection ID 暂停或恢复向指定 Connection 发送数据;也可以将 Connection ID 设置为 0,暂停或恢复向所有 Connection 发送数据。
示例代码如下:
C
// 暂停向指定 Connection 发送音频流
agora_rtc_mute_local_audio(12345, 1);
// 恢复向指定 Connection 发送音频流
agora_rtc_mute_local_audio(12345, 0);
// 暂停向指定 Connection 发送视频流
agora_rtc_mute_local_video(12345, 1);
// 恢复向指定 Connection 发送视频流
agora_rtc_mute_local_video(12345, 0);
接收端实现
提示远端流发送状态
发送端调用 agora_rtc_mute_local_audio
或 agora_rtc_mute_local_video
方法更改本地音视频流传输状态后,同一 Connection ID 下的接收端会相应地收到以下回调:
on_user_mute_audio
:提示远端用户是否暂停发送音频流。on_user_mute_video
:提示远端用户是否暂停发送视频流。
示例代码如下:
C
static void __on_user_mute_audio(connection_id_t conn_id, uint32_t uid, bool muted)
{
printf("[conn-%u] audio: uid=%u muted=%d\n", conn_id, uid, muted);
}
static void __on_user_mute_video(connection_id_t conn_id, uint32_t uid, bool muted)
{
printf("[conn-%u] video: uid=%u muted=%d\n", conn_id, uid, muted);
}
暂停/恢复接收远端流
调用以下方法暂停或恢复接收指定 Connection ID 中指定用户的音视频流:
agora_rtc_mute_remote_audio
:暂停接收远端音频流。agora_rtc_mute_remote_video
:暂停接收远端视频流。
你既可以通过填写 Connection ID 暂停接收指定 Connection ID 的数据,也可以将 Connection ID 设置为 0 暂停接收所有 Connection 的数据。
示例代码如下:
C
const uint32_t remote_uid = 789;
// 暂停接收指定 Connection 中远端用户的音频流
agora_rtc_mute_remote_audio (12345, remote_uid, 1);
// 恢复接收指定 Connection 中远端用户的音频流
agora_rtc_mute_remote_audio (12345, remote_uid, 0);
// 暂停接收指定 Connection 中远端用户的视频流
agora_rtc_mute_remote_video (12345, remote_uid, 1);
// 恢复接收指定 Connection 中远端用户的视频流
agora_rtc_mute_remote_video (12345, remote_uid, 0);
API 参考
开发过程中,你还可以参考如下文档,了解各 API 的详细信息: