iOS8之后系统自带使用AVPlayerViewController播放视频
AVPlayerViewController和导航控制器差不多,需要将它添加在一个视图控制器上,将它的视图添加视图上
#import <AVKit/AVKit.h> #import <AVFoundation/AVFoundation.h>
AVPlayerViewController *_playerController; AVPlayer *_player; AVAudioSession *_session; NSString *_urlString;
- (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]; //自动播放 }
代码来自: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)