ios播放視頻框架
A. ios dlna開發需要哪些系統框架
iOS DLNA編程
近期實現了iOS下的DLNA,發現ios下的DLNA編程資料很少,其實DLNA文檔還好 (28m) ,但是真的確定要看文檔自己去實現么? 下面先介紹一下DLNA的基本概念,已經有概念的同學可以跳過,直接看iOS下的DLNA庫
什麼是DLNA
DLNA的全稱是DIGITAL LIVING NETWORK ALLIANCE, 其宗旨是Enjoy your music, photos and videos, anywhere anytime, DLNA (Digital Living Network Alliance) 由索尼、英特爾、微軟等發起成立、旨在解決個人PC, 消費電器, 移動設備在內的無線網路和有線網路的互聯互通, 使得數字媒體和內容服務的無限制的共享和增長成為可能, 目前成員公司已達280多家.DLNA並不是創造技術, 而是形成一種解決的方案, 一種大家可以遵守的規范. 所以, 其選擇的各種技術和協議都是當前所應用很廣泛的技術和協議.DLNA將其整個應用規定成5個功能組件. 從下到上依次為:網路互連, 網路協議, 媒體傳輸, 設備的發現控制和管理, 媒體格式. 以上摘自網路.通俗的說就是一幫人為實現某些功能,定義了一個標准.
功能
探索:網路中尋找無配置的設備並計算出其提供的性能
瀏覽:瀏覽內容並通過不同方式分類
搜索:在設備上尋找特定內容
分流:全網發送多媒體內容
服務:網路通知通訊錄
列印:向網路附屬列印機發送內容
控制:使用網路改變設備狀態
上傳:發送內容到伺服器
下載:接收並儲存內容
自動解碼:改變解析度或內容格式來確保設備正確翻譯
服務保證:區分網路交通優先次序, 若網路超載, 優先放棄最弱的優先權
功能模塊
數字媒體伺服器 (DMS, Digital Media Server) :提供了媒體文件的獲取、錄制、存儲以及作為源頭的設備. 數字媒體播放器 (DMP, Digital Media Player) :可查找並播放或輸出任何由DMS所提供的媒體文件的設備. 移動式數字媒體伺服器 (M-DMS, Mobile Digital Media Server) :針對手機等體積較小、輕巧可移動式的電子設備所定義的伺服器, 多媒體格式支持與一般DMS稍有不同. 移動式數字媒體播放器 (M-DMP, Mobile Digital Media Player) :同樣是針對移動設備的播放器, 多媒體格式支持與一般DMP稍有不同. 數字媒體控制器 (DMC, Digital MediaController) :作為遙控設備使用, 可查找DMS上的多媒體文件, 並指定可播放該多媒體文件的DMP進行播放或是控制多媒體文件上下傳到DMS的設備. 數字媒體列印機 (DMPr, Digital Media Printer) :DMPr的列印機可以在DLNA網路架構下提供列印功能.
iOS下的DLNA庫
git上搜的話,只搜到一個oc包裝的庫https://github.com/FuruyamaTakeshi/DLNA 這個庫的問題還是有些的 文檔嘛,去了作者的個人站點,發現有了和沒有一樣. demo不全,不是所有的功能寫了 還有個bug,seek那裡應該用REL_TIME 所有的請求是走是程同步,非多線程 初始化到啟動時間過長,ip6測試從init開始到搜索需要6s左右. DLNA協議實現的也不全,但是再不全也比自己重寫的好.
iOS下的DLNA
咱項目呢,需要用的是DMC那部分,通俗的說就是把手機上的在線的視頻投放到小米盒子之類的產品上. 具體的實現:
// 搜索設備,我們這里就只搜DMR了
CGUpnpAvController *avCtrl = [[CGUpnpAvController alloc] init];
avCtrl.delegate = self;
// 這個 start 要6s
[self.avCtrl start];
[self.avCtrl searchWithST:DLNAService__CG_UPNPAV_DMR_DEVICE_TYPE];
// 響應設備跟新的委託
- (void) controlPoint: (CGUpnpControlPoint *) controlPoint deviceAdded: (NSString *) deviceUdn;
- (void) controlPoint: (CGUpnpControlPoint *) controlPoint deviceUpdated: (NSString *) deviceUdn;
- (void) controlPoint: (CGUpnpControlPoint *) controlPoint deviceRemoved: (NSString *) deviceUdn;
- (void) controlPoint: (CGUpnpControlPoint *) controlPoint deviceInvalid: (NSString *) deviceUdn;
// 有設備後,給設備發送相應的命令,控制設備的行為
// 給指定的設備設置播放地址
// 這里DLNA的文檔上是用了這個action後DMP會變成play狀態,就是會自動播放
BOOL b = [_currentRenderer setAVTransportUrl:url];
// 但是騰訊是又發了一個play的action,可能是騰訊測試的機子多,發現有些設備沒有自動播放吧
b = [_currentRenderer play] && b;
// 設置seek的時間,這里記得fix下庫的bug
[_currentRenderer seek:iTime]
// 這樣就完成了將網上的視頻投放到盒子 (電視上了) ,但是還沒完,我們不知道播放進度
// 我們得自己寫個定時器,主動問設備,您播放到哪秒了啊
CGUpnpAVPositionInfo *positionInfo = [_currentRenderer positionInfo];
// 最後就是關於停止暫停的一些方法了
[_currentRenderer stop];
[_currentRenderer pause];
// 如果你還想改音量啊,連續播放視頻啊
// 呵呵,這個庫沒帶,請自己實現
// 類似下面的下一個
- (BOOL) next
{
CGUpnpAction *action = [self :@"Next"];
if (!action)
return NO;
[action setArgumentValue:@"0" forName:@"InstanceID"];
if (![action post])
return NO;
return YES;
}
// 當你實現了連續播放視頻的功能時候呢,你會發現,小米盒子沒實現這個功能
// SetVolume這個action是實現設置音量的,這個可以試試看哦
看了上述代碼發現其實也不難嘛,具體試了之後呢會發現一堆坑的,如seek, 文檔上是說只有play或者stop的狀態下發送才能成功.所以呢,你直接發完play的action後,立馬發一個seek,覺得會成功么?DMR剛剛收到setAVTransportUrl後是下載,不是play狀態哦,但是這個時候已經回復你action成功了.如果你想知道DMR的狀態是有辦法的,但是這個oc包裝的庫沒寫.但是呢有的設備可以直接就發送seek,有的就必須等下載完成開始play後才能seek,我說的設備還都是小米盒子.
SOAP協議實現UPnP-AV播放系統設備控制
http://xuehuile.com/thesis/.html
官方地址 http://www.cybergarage.org/do/view/
問題點
切片(需要自己拼接)
破解(ok)
支持的格式
關注
最新的庫
流程
初始化
搜索設備
連接設備
查詢伺服器協議
查詢播放器協議(沒介面)
獲取伺服器播放link
丟給播放器
做播放器控制
定時查詢播放時間
B. 如何搭建一個 iOS 系統的視頻直播 App
如果為了商業運營,樓上分析的很對,自己開發費時費力,不如考慮成熟的技術公司,像我們用的點量軟體的,有成熟的產品,ios、Android、pc、h5全站開發,快速、專業、穩定;
如果純屬自己研究,首先可以用思維導圖將業務需求整理出來,根據需求搭建框架,代碼編程要求高、專業技術強、水很深,祝您順利!
C. ios直播播放端有哪些開源框架
jdg / MBProgressHUD (可能)
enormego / EGOTableViewPullRefresh (這個已經是常規配置了)
rs / SDWebImage (圖像部分可能是這個)
除此之外應該就沒有什麼了,網路部分可能是系統自建或者
AFNetworking / AFNetworking
D. AVPlayer可以播放,為什麼要用IJKPlayer等第三方框架
ios7的airplayer使用教程: 首先選取一部設備(以iPad為例)作為接收端,安裝AirPlay接收端App,沒有Apple TV的小夥伴也不用著急,只要有了AirPhoto,AirMusic Play(不用越獄),AirServer(需要越獄)這類軟體就可以代替Apple TV當接收端用。
E. ios app現在做直播用什麼框架
這個看你需求了,navigation 和 tabbar controller 是可以相互交叉的,你可以參考寫你想做的app的類似線上app。
F. ios中的replaykit框架 實現的屏幕錄制 可以全局屏幕錄制 錄制桌面嗎
ReplayKit
通發者十便游戲及應用程序增加屏幕錄制功能用戶選擇手或自進行屏幕錄制用戶記錄內容享社交或視頻網站
通ReplayKit進行游戲操作錄製程系統自暫停所通知提醒信息避免視頻斷另外ReplayKit允許用戶選擇否添加語音並進行基礎播放、刪除剪輯操作由於該功能涉及用戶隱私游戲或應用啟屏幕錄制功能iOS9彈屏幕提示消息讓用戶進行許可權控制
r
G. ios開發怎麼調用系統播放器播放網路視頻
這個比較難,一句兩句說不清的。
H. ios開發都會用到哪些第三方框架
特別多,希望可以幫到你:
#網路請求
pod'AFNetworking','2.5.4'
pod'Alamofire','~>3.0'
pod'AFDownloadRequestOperation','~>2.0.1'
#左右滑動的cell
pod'SWTableViewCell','~>0.3.7'
#圖片
pod'SDWebImage','3.7.2'
#輪播圖
pod'SDCycleScrollView','~>1.64'
#圖片瀏覽
pod'IDMPhotoBrowser','~>1.6.2'
#相冊選擇器
pod'CTAssetsPickerController','~>3.3.0'
#加密演算法
#
pod'NSString-Hashes','1.2.2'
#aesshamd5base64
pod'CocoaSecurity','~>1.2.4'
#HUD
pod'MBProgressHUD','0.9.1'
pod'Toast','2.4'
pod'MBProgressHUD','~>0.8'
#引導頁
pod'EAIntroView','~>2.9.0'
#pageControl
pod'SMPageControl','~>1.2'
#jsonModel數據
pod'JSONModel','1.1.0'
#加密
pod'OpenSSL-Framework','1.0.201'
#base64
pod'NSData+Base64','1.0.0'
#自動布局
pod'Masonry','0.6.1'
#播放視頻
pod'VIMVideoPlayer','~>6.0.1'
#音頻
pod'EZAudio','~>1.1.5'
#keychain
pod'SSKeychain','~>1.4.0'
pod'SAMKeychain','~>1.5.0'
pod'KeychainItemWrapper','1.2'
pod'OpenUDID','1.0.0'
#快速生成表單
pod'FXForms','~>1.2.14'
#下拉刷新
pod'MJRefresh','~>2.0.3'
#資料庫
pod'FMDB','~>2.6.2'
#通訊
pod'MQTTClient','~>0.7.2'
#日誌分析log
pod'CocoaLumberjack','2.0.0'
#RSS解析
pod'MWFeedParser','~>1.0.1'
#其它
pod'YYKit','~>1.0.7'
pod'MMPlaceHolder','~>1.9'
pod'SKTagView','~>0.9'
pod'UIView+FDCollapsibleConstraints','~>1.1'
pod'NJKWebViewProgress','~>0.2.3'
pod'RTLabel','~>1.0'
I. ios 音樂播放器引入哪個框架
酷狗音樂、天天動聽和喜馬拉雅都不錯的,我自己用的是多米音樂,多米比較強大吧,能搜到很多其他播放器上搜不到的歌,歌單系統也不錯。。