在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求:
成都创新互联公司主要从事网站设计制作、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务屏山,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
2.1 创建项目
进入即构官网, 在 【ZEGO控制台】 创建项目,并申请有效的 AppID,这一步很关键,appid为应用的唯一标识,如身份证号,是应用的身份证明,用于明确你的项目及组织身份。zego提供的服务也是基于APP ID;
App ID的获取方式很简单,只需3~5分钟,在即构官网-我的项目-创建即可。创建的项目信息可用于SDK的集成和配置;
2.2 Token 鉴权
开始集成前,可参考如下步骤设置你的项目;
如已有项目,本步骤可忽略。
如需新建项目,可按照以下步骤创建你的新项目:
用户通过 ZEGO Express SDK 进行视频通话的基本流程为:
用户 A、B 加入房间,用户 B 预览并将音视频流推送到 ZEGO 云服务(推流),用户 A 收到用户 B 推送音视频流的通知之后,在通知中播放用户 B 的音视频流(拉流)。
整个音视频通话推拉流过程的 API 调用时序如下图:
1. 创建界面
根据场景需要,为你的项目创建视频通话的用户界面。我们推荐你在项目中添加如下元素:
2.引入头文件,准备基础工作
3. 创建引擎
调用 createEngineWithProfile 接口,将申请到的 AppID 传入参数 “appID”,创建引擎单例对象。
注册回调,可将实现了 ZegoEventHandler 的对象(例如 “self”)传入参数 “eventHandler”。
调用 loginRoom 接口登录房间。roomID 和 user 的参数由您本地生成,但是需要满足以下条件:
调用登录房间接口之后,您可通过监听 onRoomStateUpdate 回调实时监控自己在本房间内的连接状态。
1. 预览自己的画面
如果希望看到本端的画面,可调用 startPreview 接口设置预览视图,并启动本地预览。
2. 将自己的音视频流推送到 ZEGO 音视频云
在用户调用 loginRoom 接口后,可以直接调用 startPublishingStream 接口,传入 “streamID”,将自己的音视频流推送到 ZEGO 音视频云。您可通过监听 onPublisherStateUpdate 回调知晓推流是否成功。
“streamID” 由您本地生成,但是需要保证:
同一个 AppID 下,“streamID” 全局唯一。如果同一个 AppID 下,不同用户各推了一条 “streamID” 相同的流,后推流的用户推流失败。
进行视频通话时,我们需要拉取到其他用户的音视频。
在同一房间内的其他用户将音视频流推送到 ZEGO 音视频云时,我们会在 onRoomStreamUpdate 回调中收到音视频流新增的通知,并可以通过 ZegoStream 获取到某条流的 “streamID”。
我们可以在该回调中,调用 startPlayingStream ,传入 “streamID” 拉取拉取播放该用户的音视频。您可通过监听 onPlayerStateUpdate 回调知晓是否成功拉取音视频。
音视频的基础功能已完成,接下来我们运行下效果,1步快速检验成果。
step1 , 与好友一起安装编译好的App,在手机上可以看到对方并进行通话互动。
完成以上,说明你成功啦!
Enjoy与好友的欢乐时光!
获取 本文的Demo、开发文档、技术支持。
获取 SDK的商务活动、热门产品。
注册即构ZEGO开发者帐号, 快速开始。
可以视频聊天的方式有很多的,同时支持PC端和移动端也是有的,以前用过富 秀视频社区,微信等等都可以的
直播视频App软件如何开发 1.形成用户的正反馈 所谓正反馈也就是在网络上的正面效应,也就是用户量与视频直播App产品价值是一种正反馈的关系存在的。一般来讲,产品的价值是随着用户数量和产品购买率、消费转化率的提升而不断提升。反过来讲,随着产品价值不断提升,在直播内容的输出上会更有价值,则能够吸引更多关注。为此在用户参与的视频App设计上,开发者是一种全民参与直播的形式,同时打造严格的审核机制,确保净化空间环境。 2.增加用户的参与感 对于视频App直播产品来讲,其自身的优点在于用户能够在平台上进行互动和讨论交流,也就是用户参与的过程,而且在用户的互动中,激发其他用户自我表达的欲望。为此对于产品设计而言,应该根据苹果手机的用户习惯,进行设计交互性强、性能好的直播类视频App产品,以及打造参与门槛低的板块,进而增强用户的参与感。 3.专注于解决问题 对于任何产品来讲,并不是产品的功能越全面越好,而是需要在不断的升级过程中,满足目标用户需求增长、变化。为此对于天瑞地安直播类视频App软件开发团队而言,在为客户设计产品的过程中,会根据客户自身的情况,在初级版本的设计中,专注于解决用户的某一个问题,从而达到吸引用户、培养用户的效果。而在功能迭代的过程中,会将重要的功能点前置,致力于为客户打造最具性价比的产品。
苹果手机从iOS11之后以及可以一边视频聊天一边玩游戏了。
iOS 11是苹果公司研发的操作系统。北京时间2017年6月6日凌晨1点,苹果开发者大会WWDC2017在加州圣何塞麦克恩利会议中心召开,苹果系统iOS 11正式亮相。
正式版iOS 11在2017年9月份随着新品iPhone的发布推送更新升级。
2017年9月20日,iOS 11正式版发布,增加的特定功能是:二维码扫描、诈骗短信识别、拼音键盘以及上海话语音识别等。9月26日,在iOS 11发布一周之后,苹果对外发布了升级包以及最新版系统iOS 11.0.1,新版本旨在修正之前版本存在的各种软件问题。
在视频聊天的同时,直接退出并打开你想要运行的其他软件即可,不会影响正常视频,只不过视频的画面在对方眼里是你退出时的影像,但是可以听见你的声音。
webRTC在上一篇,已经给大家对webRTC做了一下简单的介绍,以及简单的使用流程,接下来给大家讲一下我们的音视频会议实现流程。
只是简单的实现,优化仍需努力,仅供参考。
以上这几个类,相信大家能看出来,它们的作用分别是什么,LH_CallAudioMannager是管理音频播放的,可以切换音频播放渠道,比如蓝牙,听筒以及扬声器。LH_CallCaptureManager管理视频输入,摄像头切换功能,LH_CallManager核心类,对webRTC进行二次封装使用。LH_CoordinateManager所有类的管理类,所有的动作通过它进行统一处理。LH_VideoChatSocketNetWork与服务器的通信。
webRTC的主要实现对象是RTCPeerConnection,不管是设置流还是添加候选者,都是调用peerConnection的方法进行设置。在会议室内每增加一个人,就要新创建一个peerConnection对象,每个对象代表一个人,当然我们自己也是一个peerConnectiong。
RTCPeerConnectiong有两个设置流的方法分别是setLocalDescription、setRemoteDescription,setLocal方法是当我们拿到自己的offer SDP时需要调用的,此方法可让我们在本地看到自己的视频流。setRemote方法是将我们自己的answer SDP添加给peerConnectiong,这样对方就可以接收到我们的音视频流。注意:仅对属于本客户端的peerConnectiong这样设置。
我们的会议室内增加一个人,我们就要新建一个peerConnection,当此人开始推流时,服务端会通过webSocket将对方的answer SDP发送过了,这是我们就需要将接收到的answer SDP通过setRemote方法添加给此人相对应的peerConnection,还有ICE候选者,SDP,peerConnection,ICE候选者,这三个一定要对应上,才可以成功。
当我们本机peerConnection开始接收远端流时会通过didStartReceivingOnTransceiver方法,我们需要在此方法内做接收并展示
有展示就得有移除didChangeIceConnectionState这个代理方法会通知此时peerConnectio的连接状态,当连接关闭时我们就需要对peerConnectiong进行处理,和移除接收此peerConnection视频流的视图。
本地视频展示需要用到RTCCameraPreviewView来接收摄像头收集到的流,远端视频流展示需要用到RTCVideoRenderer。
接下来是切换音频输出,音频管理类需要用到两个框架AudioToolbox/AudioToolbox.h和AVFoundation/AVFoundation.h
摄像头切换
以上是webRTC➕webSocket音视频会议的简单实现,仅适用于初入音视频小白。
如有任何疑问欢迎私信,正在努力码Demo,稍后奉上。