直播App开发的流程步骤

1.准备开发材料

首先,提前准备好开发直播APP所需的文件和服务器,如网络文化经营许可证、增值电信业务许可证-ICP许可证、广播电视节目制作经营许可证等。其次,包括网站域名注册、网络服务器购买、带宽等。无论是什么类型的直播系统,这些都是搭建过程中需要的。

2.确定开发需求

除了程序框架,直播APP开发的核心是功能。根据平台定位和用户使用习惯,建立程序的功能。然后,直播APP开发的产品经理和系统架构师需要进行整体设计方案,包括架构模式、控制模块分区、概念模型设计、界面设计等。

对于功能的开发,建议先做基础功能,缩短开发周期,一些复杂的功能可以在运营后期通过二次开发实现。

3.程序框架的构建

在直播APP的开发中,必须根据各个节目模块的功能程序进行实际的设计方案,然后搭建节目框架,设置数据库服务器,优化节目之间的开发匹配度。

4.逻辑交互系统

直播APP的开发除了程序建设,还有一件重要的事情,就是逻辑交互系统,包括页面的UI设计、功能选项的布局跳转、后台设置的逻辑,这些都是影响后期平台运营和用户使用感的关键点。

 
5.程序测试环境

接下来是整个程序的测试。程序建成后,测试主要是测试程序的功能逻辑是否能够正常运行。一些影响体验的bug或地方必须通过系统软件测试、集成测试、多机多系统测试的步骤来发现和解决。

6.上架应用商城

直播APP的开发基本完成。直播节目测试完成后,只需要搭建环境配置,将所有配置信息切换到正式环境,即可完成APP的上线发布。IOS的在线审核流程耗时较长,而安卓商城的时间相对较短。

//通过ID获取已看视频ID
            $vids = Db("view_history")->where(["uid" => $user['id']])->field("vid")->select();
            $ids = array_column($vids, "vid");;
            $list = Db("video v")
                ->where('v.state', 1)
                ->whereNotIn("v.id", $ids)
                ->join("skr s", " v.id=s.vid and s.type=0 and '" . $user['id'] . "'=s.uid", "left")
                ->join("skr s1", "v.id=s1.vid and s1.type=0", "left")
                ->join("user u", "v.uid=u.id", "left")
                ->join("follow f", "v.uid=f.follow_id and f.uid = '" . $user['id'] . "'", "left")//视频发布者ID等于被关注人ID并且关注用户ID等于当前用户ID
                ->join("collection co", "v.id=co.vid and co.uid = '" . $user['id'] . "'", "left")//视频ID等于收藏的视频ID并且收藏的用户ID为当前用户ID
                ->join("view_history h", "v.id=h.vid", "left")
                ->join("comment c", "v.id=c.vid and c.pid=0 and c.type=0", "left")
                ->order("v.skr_count desc")
                ->group("v.id")
                ->field([
                    "v.id",//视频ID
                    "v.title",//视频标题
                    "v.url",//视频链接
                    "v.img",//视频图片
                    "v.need_gold",
                    "v.create_time",//视频创建时间
                    "v.uid",//视频对应用户ID
                    "v.state",//视频状态
                    "u.name",//视频发布人名称
                    "ifnull(u.head_img,'static/image/head.png') head_img",//用户头像
                    "v.skr_count",//点赞数
                    "ifnull(s.skr,'0') skr",//当前用户是否点赞
                    "ifnull(co.create_time,'0') collection",//当前用户是否收藏
                    "ifnull(f.id,'0') follow",//当前用户是否关注
                    "count(distinct c.id) comment_count",//评论数
                    "count(distinct h.id) view_count",//播放次数
                ])
                ->page($page, 20)
                ->select();