iOS自带AVPlayer视频播放器



前言

iOS8之后系统自带使用AVPlayerViewController播放视频

AVPlayerViewController

AVPlayerViewController和导航控制器差不多,需要将它添加在一个视图控制器上,将它的视图添加视图上

1.导入头文件

#import <AVKit/AVKit.h>
#import <AVFoundation/AVFoundation.h>

2.声明成员变量

   AVPlayerViewController      *_playerController;
    AVPlayer                    *_player;
    AVAudioSession              *_session;
    NSString                    *_urlString;

3.使用播放器

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.view.backgroundColor = [UIColor whiteColor];
    _session = [AVAudioSession sharedInstance];
    [_session setCategory:AVAudioSessionCategoryPlayback error:nil];
    
    _player = [AVPlayer playerWithURL:[NSURL URLWithString:@"https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"]];
    _playerController = [[AVPlayerViewController alloc] init];
    _playerController.player = _player;
    _playerController.videoGravity = AVLayerVideoGravityResizeAspect;
    _playerController.allowsPictureInPicturePlayback = true;    //画中画,iPad可用
    _playerController.showsPlaybackControls = true;
    
    [self addChildViewController:_playerController];
    _playerController.view.translatesAutoresizingMaskIntoConstraints = true;    //AVPlayerViewController 内部可能是用约束写的,这句可以禁用自动约束,消除报错
    //self.view.bounds
    _playerController.view.frame = CGRectMake(0, 0, 320, 300);
    [self.view addSubview:_playerController.view];
    [_playerController.player play];    //自动播放
}

4.如果要使用iOS9的画中画(仅限平板)

iOS自带AVPlayer视频播放器_第1张图片

效果图:

iOS自带AVPlayer视频播放器_第2张图片

代码来自:http://www.bkjia.com/IOSjc/1104029.html



而AVPlayer使用稍微麻烦点,不过功能更加强大。

实例代码

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"backspace" ofType:@"mov"];

NSURL *sourceMovieURL = [NSURL fileURLWithPath:filePath];

AVAsset *movieAsset = [AVURLAsset URLAssetWithURL:sourceMovieURL options:nil];

AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:movieAsset];

AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];

AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];

playerLayer.frame = self.view.layer.bounds;

playerLayer.videoGravity = AVLayerVideoGravityResizeAspect;

[self.view.layer addSublayer:playerLayer];

[player play];

上方的代码实现的效果其实和MPMoviePlayerController实现的是一样的,AVPlayer更强大的地方是它有对应的方法去调节视频的音量以及视频的进度,可以通过简单的UIslider来实现一个简单的播放器,是不是很酷炫呢!(具体的调节方法请参照苹果API)


代码来自:http://www.jianshu.com/p/1c8dd331bdb7


你可能感兴趣的:(iOS自带AVPlayer视频播放器)