iOS四种源生视频播放器框架比较(二)

下面介绍苹果重点推荐大家使用的框架类:AVPlayer和AVPlayerViewController

提供iOS四种源生视频播放器框架比较(一)的连接:点击跳转

AVPlayer存在于AVFoundation中,它更加接近于底层,所以灵活性极高。主要用来实现自定义播放器功能,没有控制界面,显示时需要借助AVPlayerLayer来进行显示,该播放器图层继承于CALayer。

代码实现:

//导入头文件

#import

// 强引用

@property(nonatomic,strong)AVPlayer * player;

//懒加载

- (AVPlayer *)player

{

if (_player == nil) {

// 加载网络资源

//    NSString *urlString = @"http://baobab.wdjcdn.com/14676170652191(23).mp4";

//    NSURL *url = [NSURL URLWithString:urlString];

//设置资源文件路径 //可以播放网络资源,

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"minion_01.mp4" ofType:nil];

NSURL *url = [NSURL fileURLWithPath:filePath];

AVAsset *asset = [AVAsset assetWithURL:url];

AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:asset];

_player = [[AVPlayer alloc] initWithPlayerItem:item];

//注意点:此方法不能使用构造方法,不然不会显示,只会有声音

AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:_player];

[self.view.layer addSublayer:playerLayer];

playerLayer.frame = [UIScreen mainScreen].bounds;

self.layer = playerLayer;

}

return _player;

}

实现播放,暂停,结束功能

- (IBAction)pauseAction:(id)sender {

[self.player pause];

}

- (IBAction)playMovieAction:(id)sender {

[self.player play];

}

- (IBAction)endAction:(id)sender {

//注意此时self.player 一定要释放,不然再次播放无法开启

self.player = nil;

[self.layer removeFromSuperlayer];

//注意释放内存

self.layer = nil;

}


自定义播放器有许多非常好的框架,可以满足我们的开发需要,向大家推荐一篇使用AVPlayer自定义播放器的文章,有开发需要的可以学习一下:链接

下面介绍一下AVPlayerViewController,苹果在iOS8.0推出的集成度非常高,推荐大家使用,下面介绍一下它的优点:自带的播放控制UI, 不需要手动添加,此控制器是视图控制器, 可以弹出, 可以压栈也可以手动调整视图大小, 添加到其他视图上。

实现代码:

# 导入头文件

#import

#import

//注意强引用

@property(nonatomic,strong)AVPlayerViewController * playerVC;

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"minion_01.mp4" ofType:nil];

NSURL *url = [NSURL fileURLWithPath:filePath];

AVPlayer *player = [[AVPlayer alloc] initWithURL:url];

self.playerVC = [[AVPlayerViewController alloc] init];

self.playerVC.player = player;

// 设置缩放模式

self.playerVC.videoGravity = AVLayerVideoGravityResizeAspect;

// 是否显示媒体播放组件

self.playerVC.showsPlaybackControls = YES;

//界面实现时开始播放

[self.playerVC.player play];

//播放方式有两种,任选其中一种即可

//第一种方式:可以选择在本控制器里播放,可以自定义播放器的位置和大小

//    self.playerVC.view.frame = CGRectMake(0, 150, self.view.frame.size.width, 300);

//    [self addChildViewController:self.playerVC];

//    [self.view addSubview:self.playerVC.view];

// 第二种方式:可以模态视频控制器进行播放

[self presentViewController:self.playerVC animated:YES completion:nil];

最后附上四种框架的全部测试demo:https://github.com/conghuasijidan/MoviePlayer.git

你可能感兴趣的:(iOS四种源生视频播放器框架比较(二))