开发者学堂课程【低代码音视频开发教程:【视频】客户端 API 探索】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/936/detail/14813
【视频】客户端 API 探索
内容介绍:
一、低代码音视频工厂的客户端 API
二、客户端 API 列表
一、低代码音视频工厂的客户端 API
1.打开文档
低代码音视频工厂的客户端 API 首先通过浏览器打开阿里云官网。在阿里云官网首页通过搜索低代码音视频工厂找到低代码音视频工厂的首页。点击查看文档快速上手,来到低代码音视频工厂的文档页面。
2.进入文档
在这个文档页面看到左侧客户端 API name。在客户端 API name 里可以看到有整个客户端 API 比较的完备的信息和完整的 API 列表和发布历史。还有整个客户端 API 按照功能划分的模块。
二、客户端 API 列表
1.列表
(1)首先看一下客户端 API 列表。这里面根据目前的四个端。Android,iOS,Web 和 Windows 对 API 进行划分。
首先点击进入安卓的接口列表,可以看到里面有最新版本的1.5.0接口的具体说明文档,是个长链接可以点进去看。还有一些比较重点的类的介绍,在具体的 API 文档中。点击可以跳转到一个阿里云官方的客户端,
是 API 的一个介绍的文档的样式。
看完客户端的 API 列表,看一下整个客户端 SDK 发布的历史,也是分四段来介绍。
这个页面以安卓为例,在这个页面会把历史的版本全部列出来,以及每个版本升级所做的升级的功能点。方便不同的用户来选择,按需选择不同的版本。整个客户端的功能按照不同的模块划分出来的,在具体的模块里介绍具体的对应的 API。
2.长连接
(1)长连接概述
长连接顾名思义是一个一直保持着的网络通道,底层是一个 TCP 的一个通道。这个通道是让客户端 SDK 在内部与自己的服务端进行网络通信的时候用的。所以这个长链接是整个客户端 SDK 的基础。
(2)初始化
长链接首先有一个初始化和建连的流程展示。如下图:首先需要初始化然后建立连接,建立连接的过程中需要获取登录用的 Token。
具体如何初始化。
• 初始化接口,是客户端SDK准备资源,与服务端建立连接的步骤。
• 本接口参数主要包含appId、appKey 、deviceld和token回调函数,以下名参数的详细说明:
①appld,应用ld,用作标识应用,可以在应用管理页应用列表中获得。
②appkey,用作标识客户端类型的宇符串,可以在应用管理页的应用列表中获得Android、iOS 、P、Web的对应值。
③deviceld,用作标识当前设备的唯一Id,如何获取deviceld,请参考下方各端的API使用示例。
④token回调函数,token回调函数是提供给SDK内部调用,用来获取建连所需要的token令牌。在回调函数的实现里,需要开发者调用自己的应用服务提供的接口来获取到token信息,并将token返回给SDK。SDK通过token与服务端建立连接。
长连接的初始化需要一些应用的信息。包括 appId 和 appKey 这两个。在阿里云低代码音视频工厂控台里面的应用管理中,具体创建应用后可以获得。deviceId 可以用来标识设备的唯一性,用具体的算法就行。
(3)建立长连接
做完初始化成功之后可以建立长连接,建立的过程中主要用到的 ID 是用户的 user ID ,目前只支持英文或者阿拉伯数字或是二者的组合。长连接成功以后,客户端内部可以必要的时候完成客户端 SDK 和服务端服务之间的通行。
(4)断开长连接
长连接也可以断开,断开有类似的逻辑。
3.房间
(1)获取房间实例对象
长连接建立完了以后,来到了低代码音视频工厂的核心的概念叫做房间。房间是低代码音视频工厂设计出来的虚拟的空间概念,在这个虚拟的空间概念概念里可以进行很多事情,比如直播、连麦、白板等。所有的要做的事情必须要在房间里完成的,而且这个房间可以帮助我们来对于房间里的任何行为和事件进行记录。如何创建房间呢?创建房间需要一个服务的接口。用户可以使用服务的 open API 接口创建好房间,创建好房间后拿到 roomID。标识房间的一串字符,拿到房间 ID 后可以去各个端。实地化一个房间对应的句柄。拿着句柄是进行房间的任何操作的前提。
(2)进入房间
进入房间的时候需要按照用户的诉求传入一些自定义的信息,每个端都支持这样的能力。包括在房间内的用户监听其他人进入房间的消息,也有类似的实例。
(3)离开房间
离开房间与进入房间类似,包括其他房源离开房间的消息也可以监听到。
(4)获取房间详情
刚才说到房间可以用来记录房间内的很多动作和行为的数据。其实就是包括房间里面本身的一些情况。这样的 API 就叫获取房间内的详细情况。可以查询的内容包括当前房间的房间 ID ,房间创建人的 userID ,用户 ID 包括房间的标题,房间的公告,包括房间内部的在线人数。
(5)更新房间标题
刚才说到房间里面包括很多信息,其中一个普遍的,或者是最基本的就是房间的标题。可以支持设置房间的标题,也可以设置别人设置房间标题更新的时候接收通知。
(6)更新房间公告
同样类似的房间公告也可以对房间标题有类似的设置和消息的解说。
(7)获取房间成员列表
另外就是可以获取房间的成员列表,实时查看房间内目前有多少人。多少user ID在这个房间内。
(8)房间踢人
房间也可以把某个人踢出去。
4.房间内
在房间内可以进行直播、消息、白板、文档、连麦,比如说可以在房间内进行直播。主播去直播推流,观众去观看直播,在房间里可以发消息,还可以构造一个白板。在房间内的其他人也可以看到实时互动的白板,也有文档,包括常见的语音连麦,视频连麦。
5.直播
先从直播开始看,直播接口主要分为两端主,一个是主播的推流。包括观众的拉流观看。这里的接口支持。基本上通用的所有的直播的能力都具备。用户无需关心直播内部的创建的内部的细节。可以通过一个接口开始直播和结束直播,包括可以去更新一些直播信息。比如常见的在电商场景下,直播里面挂载了一些商品链接,可以通过更新直播信息,在一场直播过程中更换不同的商品链接。同时直播信息会在观众端收到更新。
6.消息
消息是每个房间里都有消息对应的实例。使用这个实例的句柄就可以进行一些消息的操作,比如常见的可以在房间里发消息。在房间里发弹幕或点赞也可以发自定义消息。这里的自定义消息和弹幕消息的区别是自定义消息可以发给房间内的所有成员,也可以房间内的指定成员,而弹幕消息只能发给房间。因为房间内可以使用消息发言,也可以来禁言。或者取消禁言。具体的每一种逻辑有各个端的具体的实现的示例。包括禁言以后,用户去感知到自己被禁言这种消息的提醒。
7.白板
(1)初始化
下一个要介绍的就是白板能力,白板其实就是所普遍知道的可以实时互动的白板。白板的创建者可以在白板上进行书写,包括可以贴文档以及 PPT 以及贴视频去播放。由于提供的白板的接口的呈现形式是一个图形化的。白板会给出来一个类似 wave 的概念,wave 已经带着它的工具栏。比如要在白板上画一个圆或是矩形,已经把图形化的工具栏提供了。所以白板这块最主要是一开始的初始化,当白板呈现出来以后,就可以在白板上进行操作。
(2)白板录制和回放
白板还支持白板的录制。白板的录制是在整个白板的操作过程中,所有的动作的记录都可以被实时录制下来。可以做白板的回放。
(3)白板图片与页码操作
另外白板可以支持贴图片。例如将一个 PPT 里面的每一页作为图片贴到白板里面就可以做到在白板里面呈现文档,呈现 PPT。
8.文档
(1)上传
是一个普通的文档模块,每个房间内都会有一个文档的操作句柄,是一个文档的实例,是自己的模块。
(2)获取文档下载地址
使用句柄的话,可以进行文档的上传,文档的下载,包括文档的原始地址的获取。比如一个网络链接,可以通过查找文档的原始地址来找到下载链接。当然也可以直接对文档进行下载。
(3)下载
这里的下载是一个内存的二进制流。在移动端支持,目前在 Web,Windows上不支持。而且在可以看到整个文档运行时,对不同的文档在上传时会得到一个类似的叫文档 ID。documentID 的概念,documentID 是标识这个文档。
9.连麦
(1)流程介绍
所谓的连麦就是日常在直播中比较常见的主播和观众之间的连麦。可以去做纯的语音的连麦也可以做语音聊天室。
如上图连麦的流程。首先需要进入房间,在连麦开始前需要做一些连麦的配置,然后就去加入连麦。加入连麦成功就可以在连麦的内部去发布自己的摄像头或是麦克风的声音,包括共享屏幕,包括查看连麦成员列表。
(2)配置
具体看一下这样的步骤流程,首先看连麦的配置。可以支持在连麦之前做很多的配置,包括麦克风的设置,摄像头视频流的设置。屏幕比例,摄像头的画面采集的码率、编码的码率、摄像头的分辨率。支持对屏幕共享流的推送。对连麦设置完了之后下一个动作就是加入连麦。
(3)加入连麦和退出连麦
加入连麦在不同端游不同的实现逻辑。包括加入成功或是加入失败,类似退出连麦与加入连麦类似。包括退出的事件的监听。
(4)摄像头
摄像头的一些设置,在进行视频连麦的过程中,摄像头是一个很重要的部分。摄像头画面其实就是视频画面,视频画面包括两个部分,自己的视频画面就是自己的预览画面,自己的摄像头拍摄自己的画面,这叫本地预览画面。本地预览画面包括做一些旋转镜像都支持。本人视频流画面就是本地预览画面,支持是前后摄像头的关闭,前后摄像头的切换。关闭以后就变成了纯音频的连麦。支持对连麦过程中收到其他人视频流时的一些动作,一些通知。
(5)麦克风
自己麦克风的音频流。比如打开麦克风,关闭麦克风以及包括 Windows 端还有切换。在 Windows 端可以存在多种音频输入。对于他人的音频流可以主动去监听。包括其他人麦克风的开关都会有消息通知。还可以获取当前正在说话的人,当前正在麦克风里面有数据流的人的消息通知。
10.屏幕共享
(1)开启和关闭屏幕共享
将自己的屏幕作为画面去推送出去。目前视频共享界面在 iOS 端由于是系统权限较高,需要配置 extension。
(2)观看屏幕共享
如主播的或是老师端在课堂模式情况下进行屏幕共享,观众端如何去观看屏幕共享。在连麦过程中有常见的动作叫邀请连麦。
11.邀请连麦
(1)发出或撤销邀请
比如在直播间中,主播邀请某个观众进行连麦。包括发出邀请如果突然后悔了,撤销这个邀请。观众端在收到主播连麦邀请的时候,也有一些处理逻辑,可以接受,也可以拒绝。
(2)处理邀请
主播端如果收到了观众的拒绝要请,也会收到类似的事件。去处理类似的事件就可以了。
12.申请连麦
(1)发出或撤销申请
是在一个直播间里面某个观众向主播申请想跟主播进行连麦,他只是向主播发出一个申请。当他发出申请后,主播可以进行拒绝,也可以进行同意,都会有类似的事件提醒。
(2)处理申请
当主播收到观众的连麦申请的时候可以做一些处理,可以同意也可以拒绝,这个同意或者拒绝的消息都会发送到观众端,发出连麦申请的观众端都会收到信息。
13.踢出连麦
但主播也可以在连麦的过程中,把正在连麦的某个观众踢出连麦,结束与他的连麦。具体的操作逻辑以及四端的展示比较完整。
14.静音他人
(1)静音某个成员
在连麦或者进行视频会议中常见一个逻辑就是把某个人静音。如果不想让一个人说话,就可以静音。
(2)静音全体成员
也可以对所有人进行静音,所有人静音的话,是不包括当前主播或是当前教师,当前连麦的创建人可以静音房间内的其他人不包括自己。
15.连麦成员列表
(1)连麦中的成员
在房间中最近连麦时,可以获取房间中连麦成员,成员有多种情况。
(2)申请连麦中的成员
正在连麦的成员和申请连麦的成员。已经发出申请了,但主播并没有同意进行连麦的人员和已经正在连麦中的成员。
16.旁路直播
(1)开始旁路推流
普通的连麦情况下,是在连麦当中的所有人都是在跟主播实时互动的,实时音视频的连麦。但是跟主播音视频的连麦还可以通过旁边的一路直播通过推流出去让房间里面其他人不参与连麦就能看到当前主播的视频画面,这叫旁路直播。在连麦之外的旁边的单独的通路,把连麦的内容作为直播的内容进行推送出去。旁路直播只有主播或者老师才能开启。目前是房间的创建者才能开启。可以开始,也可以结束。
(2)设置旁路直播布局
旁路直播里有个很关键的点就是设置旁路直播里面正在连麦的多人画面的布局形式。
17.录制与回放
连麦进行录制以后,录制完成之后可以进行回放。首先连麦本身可以进行录制,连麦过程当中所有的视频画面,所有的音频都可以被作为一个视频完整地视频录制下来,录制下来后就可以进行回放,有专门的接口来查找获取连麦录制之后的生成的视频的地址。