MeetingSample iOS demo workspace

跑通示例项目

更新时间 2021年11月02日

大学长开放平台在Github上提供了一个开源音视频使用场景示例项目meeting_ios_sample。本文介绍如何跑通该实例项目,体验大学长开放平台的音视频直播SDK效果。

下文简称“meeting_ios_sample”为“Demo”。

前提条件

  • Xcode 10.0或以上版本

  • iOS 11.0或以上版本的设备

项目简介

Demo是以视频会议为场景的示例项目。内部集成了如下功能:

  • [平台用户注册与登录](# 1、 平台用户注册与登录)
  • [会议创建](# 2、 会议创建)
  • [进入并开始会议,音视频推流](# 3、进入并开始会议,音视频推流)
  • [用户角色,用户权限更改](# 4、用户角色,用户权限更改)
  • [会议分组功能](# 5、会议分组功能)
  • [白板功能](# 6、白板功能)
  • [共享屏幕功能](# 7、共享屏幕功能)
  • [会议投票功能](# 8、会议投票功能)

下面简单介绍一下各部分功能内容

1、 平台用户注册与登录

  • 项目内集成了大学长开放平台的Sample服务接口,用户可以直接在Demo内,直接注册账号并注册。注意注册的账号名不可重复。大学长开放平台不会保护用户测试的Demo项目注册的账号的安全。

2、 会议创建

  • 当注册好登录账户之后, Demo会跳转进入主页,会议列表与会议创建页。顶部的三个按钮分别是加入会议房间,快速创建会议,预约创建会议。创建好房间之后,会在下面的会议列表中显示当天创建的会议目录。点击目录也可以进入会议。会议状态分为三种:
  • New:
  • 新建会议,未开始。
  • Ongoing:
  • 会议进行中,已开始。
  • Done:
  • 会议已结束。会议关闭或已超过会议截止时间。

3、进入并开始会议,音视频推流

  • 通过快速会议或点击列表进入会议后,入会人会想会内所有人进行推流。其主要使用到SDK中的RTC功能部分。此时就会调用大学长开放平台的SDK功能进行推流。流程为,先通过调用平台的JoinRoom接口加入会议返回的会议进本信息,拿到返回申请到的app_key与token之后,初始化SDK。在接收到SDK加入回调后,就可以执行推流操作。此时SDK也会通过事件回调的方式返回当前房间内的用户属性数据与房间属性数据,详情请移步SDK API 文档。

4、用户角色,用户权限更改

  • 更改用户权限与角色是会议中的基本功能,其体现了SDK中的RTM功能,所有的请求消息与修改消息全部通过RTM服务完成。项目设定了三种角色, 会议主持人(host), 会议连携主持人(co-host),会议观众(attendee)。其中会议主持人(host)也是会议的创建者,拥有会议的最高权限,可以发送修改其他角色音视频状态的消息,设定和修改房间属性,用户角色信息【将观众(attendee)设定为连携主持人(co-host)】,开启或结束分组,调整分组内人员,开启或结束投票选项,结束并关闭会议,踢出任一用户等权限。连携主持人(co-host)为次高权限的用户,他拥有主持人(host)除给予连携主持人角色以外的所有功能。而观众(attendee)则没有任何权限,只可以修改用户自己的状态。

5、会议分组功能

  • 分组功能是项目设定,实现整个会议中有分组讨论需求的功能。分组功能体现的是SDK内RTM与RTC的协作。分组的实际内容,就是讲用户划分到不同的组当中去,当分组开始, 用户只能看见组内用户的音视频流数据,而组外其他人的数据将被屏蔽。会议主持人(host)与连携主持人(co-host)拥有会议的管理权,可以指定观众(attendee)到某个组当中,也可以转移已经在分组中的观众到其他组里,同样对分组的开始与结束有决定权。

6、白板功能

  • 白板功能在项目中为共享白板功能,每个会议会共享同一白板,所有用户都有对白板的描绘权利。该功能主要使用了SDK的白板服务功能。用户可以自由的在白板中绘制内容,即使结束共享白板,白板内容也不会被消除。白板的数据交流依赖于SDK的RTM功能,详细实现方式可以参考SDK的RTM方法与RTM事件。

7、共享屏幕功能

  • 共享屏幕在iOS端使用的是系统的ReplayKit框架,在Broadcast组件中,获取其返回的SampleBuffer数据,并上传到SDK的RTC服务,将数据流推送到房间,分发给所有参会人员。在Demo中,已加入了该插件,开发者可以进入该目录查看用于Share的SDK的使用方法与必要参数。如果开发者要自己开发,可以参考项目中的实现方式。

8、会议投票功能

  • 会议投票是为了实现在会议中可以设置投票业务而设计的功能,其实现主要体现了SDK中的自定义信令功能。我们用自定义信令实现了一套会议投票功能。通过中台接口记录会议设定的投票内容,并通过SDK发送规约的自定义信令,通知房间内所有用户投票的状态并更新UI与数据。

操作步骤

Demo项目内集成了开放平台的登录注册接口,开发者只需要更改项目内的Signning&Capabilities中Signing Certificate账号。选定支持的设备运行即可。

GitHub

View Github