2018-07-09(补)ios 视频播放

ios  视频播放有以下4种方法:

1、AVPlayer 

2、MPMoviePlayerController

3、MPMoviePlayerViewController

4、AVPlayerViewController

其中,第一种AVPlayer 定制化程度最高,自由度最高。

第二种和第三种已经过时,ios 9 之后已经弃用。第四种ios 8之后可以使用。第二种和第三种不再讲述了,主要讲第一种和第四种。

AVPlayerViewController  自带的有播放控件,是一个完整的视图,使用起来比较简单。代码如下:

             AVPlayerViewController *videoVC = [[AVPlayerViewController alloc] init];

            videoVC.player= [[AVPlayeralloc]initWithURL:url];//此处url可以是本地也可以是网络的

            videoVC.videoGravity = @"AVLayerVideoGravityResizeAspect";//视图尺寸

            [videoVC.playerplay];//自动播放

            dispatch_async(dispatch_get_main_queue(), ^(void){

                   [self   presentViewController:videoVC animated:YES completion:nil];

            });

AVPlayer 继承自NSObject,所以要播放视频,还需要把视频图层加入当前视图。

涉及到的类有:

AVPlayerLayer :播放显示视频的图层界面

AVPlayerItem :资源管理对象,包括音视频的基本信息和状态等

AVAsset:专门用于获取多媒体的相关信息,包括获取多媒体的画面、声音等信息

AVURLAsset:AVAsset的子类,可以根据一个URL路径创建一个包含媒体信息的AVURLAsset对象。代码如下:

          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];

你可能感兴趣的:(2018-07-09(补)ios 视频播放)