?對于直播來說,客戶端主要做兩件事情,推流和播放。今天先講播放。
播放流程
1.拉流:服務(wù)器已有直播內(nèi)容,從指定地址進(jìn)行拉取的過程。其實就是向服務(wù)器請求數(shù)據(jù)。
2.解碼:對視屏數(shù)據(jù)進(jìn)行解壓縮。
3.渲染:生成圖片的過程。視屏其實就是一張張連續(xù)的圖片進(jìn)行切換,一張圖片就是一幀。幀率顧名思義就是每秒顯示的圖片數(shù),當(dāng)幀率達(dá)到16時,人眼就會認(rèn)為是流暢的。是不是很神奇。
??這里的每個步驟能弄明白都可以成為人才了,如果還能解決其中的不足,那你就是尖端人才了。弄懂這些需要耗費大量的時間,還好有ijkplayer視屏直播框架,有了它,即時你不懂這些過程,也可以進(jìn)行直播播放,大神真多。
ijkplayer視屏直播框架
??ijkplayer視屏直播框架下載地址,這是開源的,喜歡研究源碼的同學(xué)可以去下載,,基于ffmpeg,同時支持iOS和Android,非常強大。上述的三個過程它全給你做好了,只要你集成到自己工程里,就能實現(xiàn)播放直播了。
&emsp?;集成到自己的工程中,最好先打包,我這里用打包好的debug模式下的,可以去百度云下載。怎么集成的,同學(xué)們可以去看這篇文章iOS中集成ijkplayer視頻直播框架。和導(dǎo)入第三方庫一樣,導(dǎo)入到自己工程中,同時還要添加依賴的動態(tài)庫。
直播
#import "FHLiveViewController.h"#import <IJKMediaFramework/IJKMediaFramework.h>#import <UIImageView+WebCache.h>// ijk下載地址: https://pan.baidu.com/s/1c2p9D0s@interface FHLiveViewController ()// 播放器@property (nonatomic, strong) IJKFFMoviePlayerController *playerVC;@end@implementation FHLiveViewController- (void)viewDidLoad { [super viewDidLoad]; // 隱藏導(dǎo)航欄 [self.navigationController.navigationBar setHidden:YES]; // 設(shè)置背景色 [self.view setBackgroundColor:[UIColor whiteColor]]; // 拉流地址