iOS開發-iOS直播開發-iOS直播項目開發文檔

最近在技術羣裏被邀請做狗頭軍師,帶着大夥做直播項目,因爲公司新空降一個高管項目格局有變所以就沒直接參與直播的開發和框架搭建這些工作,不過大家都努力積極的學這是一個好事,希望更多的開發者能夠接觸到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 或是自定義一個按鈕,進入本頁面,在本頁需要實施的是自己的直播 推流,包括視頻的採集傳輸顯示連接見[相關資料]

•項目基本結構:

•項目大致樣式:

 

五.結尾

沒啥了~加油做吧,資料和技術點這些都是現成的~
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章