ios ?視頻播放有以下4種方法:
1、AVPlayer?
2、MPMoviePlayerController
3伐谈、MPMoviePlayerViewController
4忠聚、AVPlayerViewController
其中,第一種AVPlayer 定制化程度最高柳弄,自由度最高舶胀。
第二種和第三種已經(jīng)過(guò)時(shí)概说,ios 9 之后已經(jīng)棄用。第四種ios 8之后可以使用嚣伐。第二種和第三種不再講述了糖赔,主要講第一種和第四種。
AVPlayerViewController ?自帶的有播放控件轩端,是一個(gè)完整的視圖放典,使用起來(lái)比較簡(jiǎn)單。代碼如下:
? ? ? ? ? ? ?AVPlayerViewController *videoVC = [[AVPlayerViewController alloc] init];
? ? ? ? ? ? videoVC.player= [[AVPlayeralloc]initWithURL:url];//此處url可以是本地也可以是網(wǎng)絡(luò)的
? ? ? ? ? ? videoVC.videoGravity = @"AVLayerVideoGravityResizeAspect";//視圖尺寸
? ? ? ? ? ? [videoVC.playerplay];//自動(dòng)播放
? ? ? ? ? ? dispatch_async(dispatch_get_main_queue(), ^(void){
? ? ? ? ? ? ? ? ? ?[self ? presentViewController:videoVC animated:YES completion:nil];
? ? ? ? ? ? });
AVPlayer 繼承自NSObject,所以要播放視頻基茵,還需要把視頻圖層加入當(dāng)前視圖奋构。
涉及到的類有:
AVPlayerLayer :播放顯示視頻的圖層界面
AVPlayerItem :資源管理對(duì)象,包括音視頻的基本信息和狀態(tài)等
AVAsset:專門用于獲取多媒體的相關(guān)信息拱层,包括獲取多媒體的畫面弥臼、聲音等信息
AVURLAsset:AVAsset的子類,可以根據(jù)一個(gè)URL路徑創(chuàng)建一個(gè)包含媒體信息的AVURLAsset對(duì)象根灯。代碼如下:
? ? ? ? ? NSString*file = [[NSBundlemainBundle] pathForResource:@"test.mp4"ofType:nil];
? ? ? ? ?NSURL*url = [NSURLfileURLWithPath:file];
? ? ? ? ?AVPlayerItem *item = [AVPlayerItem ?playerItemWithURL:url];
? ? ? ? ?AVPlayer *player = [AVPlayer ?playerWithPlayerItem:item];
? ? ? ? ?AVPlayerLayer *layer = [AVPlayerLayerplayerLayerWithPlayer:player];?
? ? ? ? ?layer.frame =CGRectMake(0,0,self.view.bounds.size.width,self.view.bounds.size.width );?
? ? ? ? ?[self.view.layer addSublayer:layer];
? ? ? ? ?[player play];