iOS开发-iOS直播开发-iOS直播项目开发文档

来源:互联网 发布:苹果usb网络共享怎么用 编辑:程序博客网 时间:2024/05/02 10:49

最近在技术群里被邀请做狗头军师,带着大伙做直播项目,因为公司新空降一个高管项目格局有变所以就没直接参与直播的开发和框架搭建这些工作,不过大家都努力积极的学这是一个好事,希望更多的开发者能够接触到iOS的直播这一块,so今天在这里我就直接把开发文档po出来了~不喜勿喷

一.项目预期目标

通过此项目提高对直播类项目的理解和实际操作,可以在今后工作中
有很大帮助,以及在跳槽换岗面试的时候有点墨水~

二.项目基本结构

•建议使用 MVC 进行基本框架的搭建

•第三方库支持使用 cocoapods

1.pods 所需要支持的类库推荐:(The red part is necessary)
AFNetworking     MJRefresh                SDWebimage
Masonry               SVProgressHUD      WMPageController

2.工程类库支持:(All of them necessary)
AVFoundation.framework        libbz2.tbd (这两个支持库是用来压缩的)
UIKit.framework                        libz.tbd
Foundation. framework            IJKMediaFramework. framework

3.本地存储推荐:
目前有关App本地存储的知识点涵盖了SQLite数据库、CoreData存储、沙盒
Document 存储,从这三个里面选择最适合自己的方式来实现在项目中的本地
数据持久化处理,在项目详细功能中我会解释为什么要使用本地存储。

三.接口概要 | 数据模型

•主要数据源(映客首页数据):
http://service.inke.com/api/live/aggregation?imsi=&uid=147970465&proto=6&i dfa=3EDE83E7-9CD1-4186-9F37-EE77B7423265&lc=0000000000000027&c c=TG0001&imei=&sid=20tJHn0JsxdmOGkbNjpEjo3DIKFyoyboTrCjMvP7zNx ofi1QNXT&cv=IK3.2.00_Iphone&devi=134a83cdf2e6701fa8f85c099c5e68ac3 ea7bd4b&conn=Wifi&ua=iPhone%205s&idfv=5CCB6FE7-1F0F-4288-90DC-9 46D6F6C45C2&osversion=ios_9.300000&interest=1&location=0

[请求方式中的mainURL ⬇] 

•请求方式:


正常的 AF 网络请求,可根据自己的方式来做,可以试试自己封装一个 URLSession
•数据模型(大致模型,可自己根据数据来修改)

 

①在请求数据成功之后,赋值到自己做的首页用来展示,图片的存取是通过 portrait(可自行改名)通过 SDWebimage 的方法来实现图片赋值显示
②直播流的链接是 url,到时候解析和调帧等视频直播的操作都是在自己自定义 的 PlayerController 中完成,包括自定播放器和播放效果(这时候就用到 IJKMediaFramework 和 AVFoundation 这两个库)
③如果图片不能直接用 SDWebimage 加载出来可以试一下在图片的 url 前面拼 接这个:http://img.meelive.cn/%@

四.功能划分 | 模块划分

•根据直播基本的功能需求,项目确定要必须实现的功能如下:
①.播放流(直播流的本地接受转码压缩、自定义播放器的实现)
②.本地数据读写(“关注”、“收藏”功能)
③.本地推流(模拟自身直播,没有后台,在本地搭建直播推流,网络上有很多相关资料) Tips:如果本地搭建推流不方便或不成功,实在没办法就接入牛 7 的 SDK,最起码做出一 个自己满意的效果

相关资料:
本地推流搭建: http://www.code4app.com/blog-843201-315.html
直播项目: http://code4app.com/forum.php?mod=viewthread&tid=10631&highlight=%E7%9B%B4% E6%92%AD
视频采集涉及到摄像头的硬编: http://www.jianshu.com/p/9febe519732a?utm_campaign=hugo&utm_medium=reader_sh are&utm_content=note&utm_source=qq
牛7开发文档: https://developer.qiniu.io/pili

•根据功能划分之后细化到页面,进行模块划分:
首页模块: 用来展示数据,最好有 Navigation,提供跳转页面
直播页模块: 通过首页的展示内容点击进入,在本页自定义播放器以及接收、转码、设定直播流
个人中心页模块: 主要是做个样子,还有最基础的 SDWebimage 缓存清理
收藏(or 关注)页模块: 通过本地存储把对应主播名、房间图、直播流 URL 记录,可在之后直接找到收藏(or 关注) 页打开观看
个人直播页模块: 在首页做一个 tabbar 或是自定义一个按钮,进入本页面,在本页需要实施的是自己的直播 推流,包括视频的采集传输显示连接见[相关资料]

•项目基本结构:

•项目大致样式:

 

五.结尾

没啥了~加油做吧,资料和技术点这些都是现成的~
 
0 0
原创粉丝点击