实现极速直播
- Android
更新时间不可用
了解如何快速接入实时互动 RTC,完成环境准备、参数配置、示例运行和核心流程验证。
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播 App 修改为极速直播 App,有以下两种实现方式:
- 在加入频道后,调用
setClientRole[2/2] 方法,将role参数设置为CLIENT_ROLE_AUDIENCE(观众);通过options参数将audienceLatencyLevel设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。 - 在调用
joinChannel[2/2] 加入频道时,将clientRoleType参数设置为CLIENT_ROLE_AUDIENCE(观众);将audienceLatencyLevel参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。示例代码如下:
// 创建 ChannelMediaOptions 对象,并进行配置
ChannelMediaOptions options = new ChannelMediaOptions();
// 根据场景将用户角色设置为 AUDIENCE (观众)
options.clientRoleType = Constants.CLIENT_ROLE_AUDIENCE;
// 将延时级别设置为 AUDIENCE_LATENCY_LEVEL_LOW_LATENCY (低延时)
options.audienceLatencyLevel = Constants.AUDIENCE_LATENCY_LEVEL_LOW_LATENCY;
// 直播场景下,设置频道场景为 BROADCASTING (直播场景)
options.channelProfile = Constants.CHANNEL_PROFILE_LIVE_BROADCASTING;
// 发布麦克风采集的音频
options.publishMicrophoneTrack = true;
// 发布摄像头采集的视频
options.publishCameraTrack = true;
// 自动订阅所有音频流
options.autoSubscribeAudio = true;
// 自动订阅所有视频流
options.autoSubscribeVideo = true;
// 使用临时 Token 加入频道,自行指定用户 ID 并确保其在频道内的唯一性
mRtcEngine.joinChannel(token, channelName, 0, options);后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为保证通信安全,声网推荐从服务器中获取 Token,详情请参考使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的实时音视频互动示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
- 各类直播场景有什么区别?
- 直播场景下,如何监听远端观众角色用户加入/离开频道的事件?
- 如何处理视频黑屏问题?
- 为什么我无法打开摄像头?
- 如何处理频道相关常见问题?
- 如何设置日志文件?
- 为什么部分 Android 版本应用锁屏或切后台后采集音视频无效?
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播修改为极速直播,有以下两种实现方式:
-
在调用
joinChannelByToken[2/4] 加入频道时,将clientRoleType参数设置为AgoraClientRoleAudience(观众);将audienceLatencyLevel参数设置为AgoraAudienceLatencyLevelLowLatency(低延时)。 -
在加入频道后,调用
setClientRole[2/2] 方法,将role参数设置为AgoraClientRoleAudience(观众);将options参数设置为AgoraAudienceLatencyLevelLowLatency(低延时),示例代码如下:Swift // 设置用户角色为观众并设置低延时级别 let role = AgoraClientRole.audience let options = AgoraClientRoleOptions() options.audienceLatencyLevel.AgoraAudienceLatencyLevelLowLatency = true agoraKit.setClientRole(role, options: options)
后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为确保通信安全,声网推荐使用 Token 服务器来生成 Token,详见使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的实时互动示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播修改为极速直播,有以下两种实现方式:
-
在调用
joinChannelByToken[2/4] 加入频道时,将clientRoleType参数设置为AgoraClientRoleAudience(观众);将audienceLatencyLevel参数设置为AgoraAudienceLatencyLevelLowLatency(低延时)。 -
在加入频道后,调用
setClientRole[2/2] 方法,将role参数设置为AgoraClientRoleAudience(观众);将options参数设置为AgoraAudienceLatencyLevelLowLatency(低延时),示例代码如下:Swift // 设置用户角色为观众并设置低延时级别 let role = AgoraClientRole.audience let options = AgoraClientRoleOptions() options.audienceLatencyLevel.AgoraAudienceLatencyLevelLowLatency = true agoraKit.setClientRole(role, options: options)
后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为确保通信安全,声网推荐使用 Token 服务器来生成 Token,详见使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的实时互动示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现低延时观众端
调用 setClientRole 方法时,除了将角色 role 设为 "audience"(观众),你还需要将延时等级 level 设为 1,即可将直播场景下观众端的延时级别修改为低延时。
// 添加以下代码
let clientRoleOptions = {
// 设置观众端的延时级别为低延时
level: 1
}
// 修改 setClientRole 中传入的参数
rtc.client.setClientRole(options.role, clientRoleOptions);后续步骤
为保障通信安全,在正式生产环境中,你需要在自己的 App 服务端生成 Token。详见使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的示例项目供你参考,你可以前往下载或查看其中的源代码。
其它集成方式
使用 npm 集成 Web SDK 还支持开启 Tree shaking 来减小集成 SDK 后的 App 体积,详见使用 Tree shaking。
除使用 npm 获取 Web SDK 之外,你还可以使用以下方法获取 SDK:
-
在项目 HTML 文件中,添加如下代码,使用 CDN 方法获取 SDK:
HTML <script src="https://download.agora.io/sdk/release/AgoraRTC_N-4.24.9.js"></script> -
下载声网 Web SDK 4.x 版本 SDK 包至本地,将 SDK 包中的
.js文件保存到项目文件所在的目录下,然后在项目 HTML 文件中添加如下代码:HTML <script src="./AgoraRTC_N-4.24.9.js"></script>
信息
在以上方法中,SDK 都会在全局导出一个 AgoraRTC 对象,直接访问这个对象即可操作 SDK。
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播修改为极速直播,有以下两种实现方式:
- 在调用
joinChannel[2/2] 加入频道时,在options参数中将clientRoleType参数设置为CLIENT_ROLE_AUDIENCE(观众);将audienceLatencyLevel参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。 - 在加入频道后,调用
setClientRole[2/2] 方法,将role参数设置为CLIENT_ROLE_AUDIENCE(观众);将options参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时),示例代码如下:
ChannelMediaOptions option;
// 设置频道场景为直播
option.channelProfile = CHANNEL_PROFILE_LIVE_BROADCASTING;
// 设置用户角色为观众
option.clientRoleType = CLIENT_ROLE_AUDIENCE;
// 将观众端延时级别设为低延时
option.audienceLatencyLevel = AUDIENCE_LATENCY_LEVEL_LOW_LATENCY;
// 自动订阅频道内的音频流
option.autoSubscribeAudio = true;
// 自动订阅频道内的视频流
option.autoSubscribeVideo = true;
// 填入你在控制台获取的临时 Token 加入频道
int ret = m_rtcEngine->joinChannel(token, cs2utf8(strChannelName).c_str(), 0, option);将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播修改为极速直播,有以下两种实现方式:
-
在调用
JoinChannel[2/2] 加入频道时,在options参数中将clientRoleType参数设置为CLIENT_ROLE_AUDIENCE(观众);将audienceLatencyLevel参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。 -
在加入频道后,调用
SetClientRole[2/2] 方法,将role参数设置为CLIENT_ROLE_AUDIENCE(观众);将options参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时),示例代码如下:C# ChannelMediaOptions options = new ChannelMediaOptions(); // 将频道场景设置为直播。 options.channelProfile.SetValue(CHANNEL_PROFILE_TYPE.CHANNEL_PROFILE_LIVE_BROADCASTING); // 将用户角色设置为主播或观众。此处以观众为例。 options.clientRoleType.SetValue(CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE); // 对于极速直播下的观众,需设置用户级别为 AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY;对于主播,无需此设置。 options.audienceLatencyLevel.SetValue(AUDIENCE_LATENCY_LEVEL_TYPE.AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY);
后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为确保通信安全,声网推荐使用 Token 服务器来生成 Token,详见使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现方法
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播修改为极速直播,有以下两种实现方式:
-
在调用
joinChannelByToken[2/4] 加入频道时,将clientRoleType参数设置为AUDIENCE(观众);将audienceLatencyLevel参数设置为LOW_LATENCY(低延时)。 -
在加入频道后,调用
setClientRole[2/2] 方法,将role参数设置为AUDIENCE(观众);将options参数设置为LOW_LATENCY(低延时),示例代码如下:ArkTS // 设置用户角色为观众,并按场景设置延时级别 let option = new ClientRoleOptions(); option.audienceLatencyLevel = this.lowLegacyLiving ? Constants.AudienceLatencyLevel.LOW_LATENCY : Constants.AudienceLatencyLevel.ULTRA_LOW_LATENCY; this.rtcEngine?.setClientRole(Constants.ClientRole.AUDIENCE, option);
后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为确保通信安全,声网推荐使用 Token 服务器来生成 Token,详见使用 Token 鉴权。
相关信息
示例项目
声网提供了开源的实时互动示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
- 各类直播场景有什么区别?
- 直播场景下,如何监听远端观众角色用户加入/离开频道的事件?
- 如何处理视频黑屏问题?
- 为什么我无法打开摄像头?
- 如何处理频道相关常见问题?
- 如何设置日志文件?
- 如何处理无声问题?
- 为什么部分鸿蒙版本 App 锁屏或切后台音视频采集无效?
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播修改为极速直播,有以下两种实现方式:
-
在加入频道后,调用
setClientRole方法,将role参数设置为ClientRoleAudience(观众);将options参数设置为AudienceLatencyLevelLowLatency(低延时)。 -
在调用
joinChannel加入频道时,将clientRoleType参数设置为ClientRoleAudience(观众);将audienceLatencyLevel参数设置为AudienceLatencyLevelLowLatency(低延时)。示例代码如下:JavaScript rtcEngine.joinChannel(token, channel, uid, { clientRoleType: ClientRoleType.ClientRoleAudience audienceLatencyLevel: AudienceLatencyLevelType.AudienceLatencyLevelLowLatency });
后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为确保通信安全,声网推荐使用 Token 服务器来生成 Token,详见使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的实时音视频互动示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
- Electron 平台常见开发问题
- 各类直播场景有什么区别?
- 直播场景下,如何监听远端观众角色用户加入/离开频道的事件?
- 如何处理视频黑屏问题?
- 为什么我无法打开摄像头?
- 如何处理频道相关常见问题?
- 如何设置日志文件?
- 为什么部分 Android 版本应用锁屏或切后台后采集音视频无效?
- 编译 Xcode 项目时遇到无法打开 framework 的弹窗警告怎么办?
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播修改为极速直播,有以下两种实现方式:
- 在加入频道后,调用
SetClientRole[2/2] 方法,将role参数设置为CLIENT_ROLE_AUDIENCE(观众);将options参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。 - 在调用
JoinChannel[2/2] 加入频道时,在options参数中将clientRoleType参数设置为CLIENT_ROLE_AUDIENCE(观众);将audienceLatencyLevel参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。示例代码如下:
public void Join() {
// 设置频道媒体选项
ChannelMediaOptions options = new ChannelMediaOptions();
// 开始视频渲染
LocalView.SetEnable(true);
// 自动订阅所有音频流
options.autoSubscribeAudio.SetValue(true);
// 自动订阅所有视频流
options.autoSubscribeVideo.SetValue(true);
// 将频道场景设为直播
options.channelProfile.SetValue(CHANNEL_PROFILE_TYPE.CHANNEL_PROFILE_LIVE_BROADCASTING);
// 将用户角色设为观众
options.clientRoleType.SetValue(CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE);
// 将观众端延时级别设为低延时
options.audienceLatencyLevel.SetValue(AUDIENCE_LATENCY_LEVEL_TYPE.AUDIENCE_LATENCY_LEVEL_LOW_LATENCY);
// 加入频道
RtcEngine.JoinChannel(_token, _channelName, 0, options);
}后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为确保通信安全,声网推荐使用 Token 服务器来生成 Token,详见使用 Token 鉴权。
参考信息
示例代码
声网提供了开源的极速直播示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播 App 修改为极速直播 App,有以下两种实现方式:
- 在加入频道后,调用
setClientRole方法,将role参数设置为clientRoleAudience(观众);将options参数设置为audienceLatencyLevelLowLatency(低延时)。 - 在调用
joinChannel加入频道时,将clientRoleType参数设置为clientRoleAudience(观众);将audienceLatencyLevel参数设置为audienceLatencyLevelLowLatency(低延时)。示例代码如下:
await _engine.joinChannel(
token: token,
channelId: channel,
options: const ChannelMediaOptions(
// 自动订阅所有视频流
autoSubscribeVideo: true,
// 自动订阅所有音频流
autoSubscribeAudio: true,
// 发布摄像头采集的视频
publishCameraTrack: true,
// 发布麦克风采集的音频
publishMicrophoneTrack: true,
// 设置用户角色为 clientRoleAudience(观众)
clientRoleType: ClientRoleType.clientRoleAudience,
// 设置低延时级别
audienceLatencyLevel: AudienceLatencyLevelType.audienceLatencyLevelLowLatency),
uid: 0,
);后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为保证通信安全,声网推荐从服务器中获取 Token,详情请参考使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的实时音视频互动示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
- 如何解决 Flutter 上 iOS release 包初始化时报 symbol not found 的问题?
- 各类直播场景有什么区别?
- 直播场景下,如何监听远端观众角色用户加入/离开频道的事件?
- 如何处理视频黑屏问题?
- 为什么我无法打开摄像头?
- 如何处理频道相关常见问题?
- 如何设置日志文件?
- 为什么部分 Android 版本应用锁屏或切后台后采集音视频无效?
- 编译 Xcode 项目时遇到无法打开 framework 的弹窗警告怎么办?
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播修改为极速直播,有以下两种实现方式:
-
在加入频道后,调用
setClientRole方法,将role参数设置为ClientRoleAudience(观众);将options参数设置为AudienceLatencyLevelLowLatency(低延时)。 -
在调用
joinChannel加入频道时,将clientRoleType参数设置为ClientRoleAudience(观众);将audienceLatencyLevel参数设置为AudienceLatencyLevelLowLatency(低延时)。示例代码如下:TypeScript // 以观众角色加入频道 agoraEngineRef.current?.joinChannel(token, channelName, uid, { clientRoleType: ClientRoleType.ClientRoleAudience, // 设置低延时级别 audienceLatencyLevel: AudienceLatencyLevelType.AudienceLatencyLevelLowLatency });
后续步骤
本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为确保通信安全,声网推荐使用 Token 服务器来生成 Token,详见使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的实时音视频互动示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
- 各类直播场景有什么区别?
- 直播场景下,如何监听远端观众角色用户加入/离开频道的事件?
- 如何处理视频黑屏问题?
- 为什么我无法打开摄像头?
- 如何处理频道相关常见问题?
- 如何设置日志文件?
- 为什么部分 Android 版本应用锁屏或切后台后采集音视频无效?
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播 App 修改为极速直播 App,有以下两种实现方式:
- 在加入频道后,调用
setClientRole[2/2] 方法,将role参数设置为CLIENT_ROLE_AUDIENCE(观众);将options参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。 - 在调用
joinChannel[2/2] 加入频道时,将clientRoleType参数设置为CLIENT_ROLE_AUDIENCE(观众);将audienceLatencyLevel参数设置为AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。示例代码如下:
// 设置频道媒体选项
agora::rtc::ChannelMediaOptions options;
// 将频道场景设为直播
options.channelProfile = agora::CHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING;
// 将用户角色设为观众
options.clientRoleType = agora::rtc::CLIENT_ROLE_TYPE::CLIENT_ROLE_AUDIENCE;
// 将观众端延时级别设为低延时
options.audienceLatencyLevel = agora::rtc::AUDIENCE_LATENCY_LEVEL_TYPE::AUDIENCE_LATENCY_LEVEL_LOW_LATENCY;
// 加入频道
RtcEngineProxy->joinChannel(TCHAR_TO_ANSI(*_token), TCHAR_TO_ANSI(*_channelName), 0, options);后续步骤
- 如果你的目标平台是 macOS 或 iOS,则需要在打包时添加实时互动所需的摄像头和麦克风等权限,详见如何为 Unreal Engine 项目添加实时互动所需的权限?
- 本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为保证通信安全,声网推荐从服务器中获取 Token,详情请参考使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
- 各类直播场景有什么区别?
- 直播场景下,如何监听远端观众角色用户加入/离开频道的事件?
- 如何处理视频黑屏问题?
- 为什么我无法打开摄像头?
- 如何处理频道相关常见问题?
- 如何设置日志文件?
- 为什么部分 Android 版本应用锁屏或切后台后采集音视频无效?
- 编译 Xcode 项目时遇到无法打开 framework 的弹窗警告怎么办?
相关文档
本文介绍如何集成声网实时互动 SDK,在基础的音视频互动能力上进行少量代码修改,即可实现一个极速直播 App。 极速直播是区别于互动直播的一种直播场景,两者的区别在于观众端的延时级别:
- 互动直播:观众端的延时级别为超低延时,以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播:观众端的延时级别为低延时,可以满足主播与观众较低频率的音视频互动,或者回应观众文字、弹幕及打赏信息。
更多关于极速直播的延时指标、同步性、互动体验以及费用介绍,详见直播场景区别和计费说明。
前提条件
开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现步骤
将直播场景下观众端的延时级别修改为低延时,即可将一个互动直播 App 修改为极速直播 App,有以下两种实现方式:
- 在加入频道后,调用 SetClientRole 方法,将 clientroletype 参数设置为 CLIENT_ROLE_AUDIENCE(观众);将 options 参数设置为 AUDIENCE_LATENCY_LEVEL_LOW_LATENCY(低延时)。
- 在调用 JoinChannel 加入频道时:
- 勾选 Client Role Type Set Value 并设置 Client Role Type 为 CLIENT_ROLE_AUDIENCE,设置用户角色为观众。
- 勾选 Audience Latency Level Set Value 并设置 Audience Latency Level 为 AUDIENCE_LATENCY_LEVEL_LOW_LATENCY,将观众端延时级别设为低延时。
后续步骤
- 如果你的目标平台是 macOS 或 iOS,则需要在打包时添加实时互动所需的摄像头和麦克风等权限,详见如何为 Unreal Engine 项目添加实时互动所需的权限?
- 本文的示例使用了临时 Token 加入频道。在测试或生产环境中,为保证通信安全,声网推荐从服务器中获取 Token,详情请参考使用 Token 鉴权。
参考信息
示例项目
声网提供了开源的示例项目供你参考,你可以前往下载或查看其中的源代码。
常见问题
- 各类直播场景有什么区别?
- 直播场景下,如何监听远端观众角色用户加入/离开频道的事件?
- 如何处理视频黑屏问题?
- 为什么我无法打开摄像头?
- 如何处理频道相关常见问题?
- 如何设置日志文件?
- 为什么部分 Android 版本应用锁屏或切后台后采集音视频无效?
- 编译 Xcode 项目时遇到无法打开 framework 的弹窗警告怎么办?