分享一下一款直播App开发的过程
听说有人声称开发一款直播App不仅耗时还非常昂贵,今天跟大家说道一下,开发一款直播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个,包括视频直播基础模块、视频直播模块、视频播放器模块和视频直播聊天室模块。

- 聊天文本/表情输入有chatbox,UIChatbox等模块。效果如下:

- 及时通讯(互动功能):融云,环信等模块,也可以自己通过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开发的过程的更多相关文章
- App开发的过程
直播App开发的过程 第一步:分解直播App的功能,我们以X客为例 视频直播功能,这是一款直播App最主要的功能,要能支持视频直播RTMP推流,使画面传输流畅.清晰(美颜后的清晰,你懂的聊天功能,用户 ...
- 视频直播APP开发分析
视频直播APP开发到目前为止都还是热门的一个行业,而且发展到现在直播的种类非常多,很多行业都打入了直播行业,再也不是单纯的人物直播这么单一了.视频直播APP开发行业就像是吃螃蟹,来的早的人不懂如何吃, ...
- 利用阿里云如何开发一款直播app?
在开发的过程中应该注意些什么?下面让小编告诉你: 随着互联网的发展,越来越多的人已经加入互联网的行列.而且很多的人也开始直播,和众多的网友分享自己身边事情.互联网还在加速发展,从PC互联网,到移动互联 ...
- 在APP开发设计过程中:如何设计启动页面?
心理学上有一个“7秒理论”,说的是,一个人对另一个人的印象,在初次见面的七秒内就会形成,最近更有研究表明,这个时间可能更短——不到1秒.所以初次见面所展示的形象真的很重要.同理,用户在使用APP时,每 ...
- 开发一款直播APP系统软件应该有哪些功能,如何开发?
1.技术实现层面: 技术相对都比较成熟,设备也都支持硬编码.IOS还提供现成的 Video ToolBox框架,可以对摄像头和流媒体数据结构进行处理,但Video ToolBox框架只兼容8.0以上版 ...
- 【如何快速的开发一个完整的iOS直播app】(美颜篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,美颜功能是很重 ...
- 【如何快速的开发一个完整的iOS直播app】(采集篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,首先需要采集主 ...
- 【如何快速的开发一个完整的iOS直播app】(播放篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看上篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,集成ijkpl ...
- 【如何快速的开发一个完整的iOS直播app】(推流篇)
前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,肯定需要流媒体服务器,本篇主要讲解直播中流媒体服务器搭建,并且讲解了如 ...
随机推荐
- 使用javascript打开链接的多种方法
在页面中的链接除了常规的方式以外,如果使用javascript,还有很多种方式,下面是一些使用javascript,打开链接的几种方式: 1.使用window的open方法打开链接,这里可是在制定页面 ...
- 【新产品发布】【GK101 10MHz任意波发生器】
简介: GK101 10MHz掌上任意波形发生器基于多项先进技术,在较小的体积上实现了普通台式仪器才具有的功能.仪器仅手掌大小,实现了80M采样率.10MHz最大频率.10Vpp最高幅度的输出. 仪器 ...
- Windows中杀死占用某个端口的进程
Windows中杀死占用某个端口的进程 netstat -ano | findstr //列出进程极其占用的端口,且包含 80 tasklist | findstr taskkill -PID < ...
- 彻底搞清楚字符编码: ASCII, ISO_8859, GB2312,UCS, Unicode, Utf-8
彻底搞清楚字符编码: ASCII, ISO_8859, GB2312,UCS, Unicode, U 1.ASCII: 0-127(128-255未使用),美国标准 2.IS0-8859-1(lati ...
- [ZZ] HDR the bungie way
http://blog.csdn.net/toughbro/article/details/6755394 bufferencoding游戏float算法 bungie 06年,gamefest上的p ...
- [ZZ] HD7970GE vs GTX770
AMD/NV烽烟再起!HD7970GE大战GTX770 泡泡网显卡频道7月8日 高端市场肩负展示厂商实力,树立品牌形象的任务,历来是兵家必争之地.从GTX680 VS HD7970,HD7970GE ...
- Apache Spark源码走读之1 -- Spark论文阅读笔记
欢迎转载,转载请注明出处,徽沪一郎. 楔子 源码阅读是一件非常容易的事,也是一件非常难的事.容易的是代码就在那里,一打开就可以看到.难的是要通过代码明白作者当初为什么要这样设计,设计之初要解决的主要问 ...
- Memcached 笔记与总结(2)编译 php-memcache 扩展
环境:CentOS 6.6 + Apache 2.2.21 + PHP 5.3.10 php-memcache 是 php 写的 memcached 的客户端,以扩展的形式发布. 对于正在运行的 ph ...
- CentOS 6 RPM安裝python 2.7
先说第一种方法,通过rpmbuild编译XXX.src.rpm包([1].[2]): 安装依赖:sudo yum install -y make autoconf bzip2-devel db4-de ...
- Java中调用c/c++语言出现Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.testPrint(Ljava/lang/String;)V...错误
错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.testPrint(Ljava/lang/S ...