直播App开发的过程

第一步:分解直播App的功能,我们以X客为例

视频直播功能,这是一款直播App最主要的功能,要能支持视频直播RTMP推流,使画面传输流畅、清晰(美颜后的清晰,你懂的
聊天功能,用户之间的互动聊天,包括文字和表情(小粉丝间的小秘密
互动功能,用户与主播间的互动,点亮个灯,送一束花等等
支付&提现功能,用户用现金购买礼物送给心仪的主播,主播收到礼物后可再兑换成现金取出
视频回放功能,在直播的过程中同时录像,使得没看到直播的小粉丝也有机会再看
分享功能,将房间号分享到微信、微博、QQ等

第二步:寻找合适的云服务SDK进行嵌入,在APICloud的聚合API中可以轻易找到以上的功能模块,挑选合适的模块封装到自己的App中

视频直播功能有ytylive qupaiLive 亲加云等模块。 拿ytylive举例,此模块支持主流 RTMP 服务器 支持目前所有主流的 RTMP 服务器 (simple-rtmp-server、crtmpserver、FMS 等)。 支持所有的 RTMP 协议 支持所有 RTMP 协议及变种 (RTMP、RTMPT、RTMPE、RTMPS、RTMPTE、RTMPTS 等)。 性能强大 资源 (CPU/内存) 占用率低,使用硬件加速进行编码,压缩比例大,延时小。 支持实时滤镜 支持多种实时滤镜效果 (Gray、InvertColors、Sepia、Fisheye、Glow、GaussionBlur)。 而像亲加云模块共有4个,包括视频直播基础模块、视频直播模块、视频播放器模块和视频直播聊天室模块。 enter image description here
聊天文本/表情输入有chatbox,UIChatbox等模块。效果如下: enter image description here
及时通讯(互动功能):融云,环信等模块,也可以自己通过socketManager自己封装协议实现
支付提现:支付宝、ping++、微信支付、银联支付、现在支付等模块
视频回放:视频回放功能的实现其实是录像+存储到服务器中,因此使用APICloud的数据云功能,或是七牛云存储,又拍云等模块都可以实现
直播/主播分享:微信、新浪微博、QQ等平台分享模块

第三步:完成App开发5步骤 现在我们所有的模块已经挑选完毕,开发者按照之前和大家分享过App开发5步骤的内容就可以完成一款直播App的开发。

这5步骤包括:

App框架搭建,在APICloud Studio中直接创建应用框架,有三个常用页面框架备选
积木式拼装,将所有你挑选好的模块,用JavaScript编写页面及模块调用,运用HTML5+CSS3搭建应用的界面UI,完成App编码全过程。
真机调试,通过模拟器和真机调试功能进行App优化,一键点击即可在iOS和Android手机中进行App优化。
云编译,在APICloud官网上传App的icon、启动页和证书,一键“云编译”即可同时生成iOS和Android的原生安装包。
云修复,使用云修复快速迭代,随时发布新版本、新功能,无需提交新的安装包。
做完以上这三个步骤,开发直播App的全过程也就结束了。估计大家还会考虑开发成本的问题,除去部分模块是收费之外,其他步骤都是免费的。况且,由于是积木式拼装的方式,开发时间会大幅缩短。(详情进入apicloud.com官网查询)

最后,小编再分享一些开发直播App的难点和细节。

在网络信号弱的情况下,需要保证视频质量。用户如果经常会发生信号不好需要缓存的情况,那么会大大降低用户体验。
直播画面的延迟情况。数据传输是按照客户端上传到服务器,服务器再下传到客户端的模式,数据越大尤其是高清视频画面,那么整体上传下载速度越慢,客户端显示出现延迟,用户会出现不停缓冲等状况,影响用户的使用。
页面交互动画。互动直播的内在就是主播与用户的一个互动过程。主流的直播APP通常会添加诸如送花、打赏等等,对于系统兼容性、直播APP运行速度以及流畅度都会造成一定的影响,甚至会出现BUG。

App开发的过程的更多相关文章

  1. 分享一下一款直播App开发的过程

    听说有人声称开发一款直播App不仅耗时还非常昂贵,今天跟大家说道一下,开发一款直播App到底分几步走? 第一步:分解直播App的功能,我们以X客为例 视频直播功能,这是一款直播App最主要的功能,要能 ...

  2. 在APP开发设计过程中:如何设计启动页面?

    心理学上有一个“7秒理论”,说的是,一个人对另一个人的印象,在初次见面的七秒内就会形成,最近更有研究表明,这个时间可能更短——不到1秒.所以初次见面所展示的形象真的很重要.同理,用户在使用APP时,每 ...

  3. 如何提升app开发效率

    无论在什么行业,用户永远都是不可替代的“上帝”,一切的服务,开发都得按照用户的意愿来进行.然而在app开发领域中,专业的技术操作却并不像逛街淘货一样清晰可见,更多的需要app开发人员一行行代码敲出来, ...

  4. APP开发选择什么框架好? 请看这里!

    背景 App的开发一般都需要满足Android和iOS两个系统环境,也就意味着一个App需要定制两套实现方案,造成开发成本和维护成本都很高.为了解决这个问题,最好的办法就是实现一套代码跨端运行,所以H ...

  5. 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录

     前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...

  6. 从中间件的历史来看移动App开发的未来

    在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...

  7. 移动web app开发必备 - 异步队列 Deferred

    背景 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe(原理类似) setTimeo ...

  8. 选择App开发外包时,你该了解哪些法律常识?

    随着App需求的激增,选择App外包服务的客户也多了起来.然而客户和开发方对于其中的法律条款却不甚了解,导致在服务过程中,时常会发生一些分歧和纠纷,最终致使项目搁浅. 为了普及App外包的法律常识,移 ...

  9. App开发如何利用Fidder,在api接口还没有实现的情况下模拟数据,继续开发

    相信app开发很多时候,都是等后台出接口,拿到数据调试错误.殊不知,我们完全可以不用等,只要有约定好的接口定义文档,借助工具就能做到,自己模拟数据返回~      下面主要是在项目组开发过程中,使用F ...

随机推荐

  1. su和su-命令的本质区别

    su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell: 而后者连用户和Shell环境一起切换成root身份了.只有切换了Shell环境才不会 ...

  2. 新的android studio创建的fragment工程跟老师讲的结构有区别

    工程自动创建了fragment类,并且activity_main中的标签是fragmnet,这就不需要在MainAcitivity中手动创建fragment了. 但是这样的程序运行之后会出现两个fra ...

  3. OpenJudge解题经验交流

    1.1编程基础之输入输出01:Hello, World! 02:输出第二个整数PS:a,b需用longint类型接收 03:对齐输出 04:输出保留3位小数的浮点数 05:输出保留12位小数的浮点数 ...

  4. MATLAB那些常见的命令

    1.clear :清除内存变量和函数,也就是把WorkSpace的变量给清空: 2.clc :清楚当前Matlab命令窗口的内容:相当于清楚屏幕吧,重新开始,简洁一点,注意clc是不清 楚变量的.一般 ...

  5. UUID生成

    >>>Arch Linux # uuidgen From: http://os.51cto.com/art/200709/56613.htm >>>Debian j ...

  6. 有效Email

    !/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test($.trim($('#account').val()))

  7. 通过案例对 spark streaming 透彻理解三板斧之二:spark streaming运行机制

    本期内容: 1. Spark Streaming架构 2. Spark Streaming运行机制 Spark大数据分析框架的核心部件: spark Core.spark  Streaming流计算. ...

  8. mongodb查询返回内嵌符合条件的文档

    db.T_Forum_Thread.find({ "ThreadReply.ReplyContent" : /范甘迪/ }, { "ThreadReply.$" ...

  9. mysql分区研究

    表分区学习 1. 概述 1.1. 优点: l 将表分区比一个表在单个磁盘或者文件系统存储能够存储更多数据 l 可以通过drop分区删除无用数据,也可以通过增加分区添加数据 l 查询可以通过分区裁剪进行 ...

  10. Cacti客户端SNMP的安装和配置

    安装 yum -y install net-snmp 配置 编辑/etc/snmp/snmpd.conf文件 找到下面这句: access  notConfigGroup ""   ...