您的位置:  首页 > 技术杂谈 > 正文

技术分享| 音视频多频道使用的正确姿势

2021-10-20 14:00 https://my.oschina.net/anyRTC/blog/5282970 anyRTC 次阅读 条评论

为方便用户同时加入多个频道,接收多个频道的音视频流,anyRTC 从底层架构给予支持多频道管理,且频道数量无限制,跟随我一起探讨多频道的奥秘吧~

在跟踪客户需求时,总能听到客户说单个频道支持的人数太少了;我想加入一个频道后不退出的情况下,加入其他频道听取下他们的内容;我想同时进多个频道进行监听;我想在大班课上课的同时,给小组分组上课;对讲;分屏监控...这些需求 anyRTC 统统可以满足了~

多频道架构

在这里插入图片描述

方案介绍

每个用户可以进入多个频道,且频道数量不限制,但只能在一个频道中发布音视频流,anyRTC 的回调中都会带有频道标识,开发者只需要做好本地管理即可。

实现方法

SDK 提供 ARtcChannel 类和 ARtcChannelDelegate 类实现多频道控制。你可以多次调用 createRtcChannel,通过不同的 channelId 创建多个 ARtcChannel 对象(对应多个频道),然后分别调用 ARtcChannel 中的 joinChannelByToken 方法加入对应的频道。

实现多频道功能的主要步骤如下:

  1. 调用 sharedEngineWithAppId 方法,创建并初始化 ARtcEngineKit
  2. 调用 setChannelProfile方法,将频道场景设置为直播。
  3. 调用 createRtcChannel 方法,通过 channelId 创建一个 AgoraRtcChannel 对象。
  4. 调用 ARtcChannel 类的 setRtcChannelDelegate方法,接收该频道的回调通知。
  5. 调用 ARtcChannel 类的 setClientRole 设置用户角色。
  6. 调用 ARtcChannel 类的 joinChannelByToken 方法加入频道。用户加入频道后,默认自动订阅频道内所有其他用户的流。如果想发布自己的音视频流到该频道中,调用publish方法发布。
  7. 如果需要加入更多的频道,重复步骤 3、4、5、6。

加入多个频道只能在一个频道中发布自己,在调用发布的时候,请确保在其他频道中角色为Audience,在要发布的频道中设置角色为Broadcaster

适用场景

场景1:大班课分组教学

大班课分组教学业界又叫超级小班课,其场景借鉴了视频会议里的breakout room功能,将大班进行分组,小组学习讨论,符合TBL的教学理念,既不浪费教师资源,又能满足个性体验。

在这里插入图片描述

一个主讲老师同时对多个小班进行授课,班内学生能够进行互动交流,促进学习。

场景2:互联网对讲

互联网对讲已经逐步进入公共视野,传统的对讲机已经慢慢的被淘汰,传统对讲机面临距离限制、噪声严重、同时只能订阅一个频道等多重问题。anyRTC 互联网对讲方案支持全球对讲,采用AI降噪,凸显人声消除噪声,同时支持同时加入多个频道。

互联网对讲方案已经运用到了智慧小区、智慧调度等行业

更多场景玩法期待开发者发掘~

  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接