//
// ViewController.m
// 01-视频播放
//
// Created by apple on 16/9/7.
// Copyright © 2016年 apple. All rights reserved.
//
#import "ViewController.h"
#import <MediaPlayer/MediaPlayer.h> //对AVFoundation进行封装
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h> //MP中两个播放器的替代品
@interface ViewController ()
@property (nonatomic, strong) MPMoviePlayerController *playerController;
//AVFoundation播放器
@property (nonatomic, strong) AVPlayer *avplayer;
//iOS9播放器
@property (nonatomic, strong) AVPlayerViewController *avplayerVc;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(done) name:MPMoviePlayerWillExitFullscreenNotification object:nil];
}
//点击播放
- (IBAction)clickPlayBtn:(id)sender {
//创建媒体资源对象 文件信息(文件大小,总时长,码率)
AVAsset *asset = [AVAsset assetWithURL:[[NSURL alloc] initWithString:@"http://baobab.wdjcdn.com/14676170652191(23).mp4"]];
//创建播放项目 播放状态,当前时间,持续时间等
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:asset];
//创建控制器
AVPlayerViewController *avplayerVc = [[AVPlayerViewController alloc] init];
self.avplayerVc = avplayerVc;
//设置播放器
avplayerVc.player = [[AVPlayer alloc] initWithPlayerItem:item];
//设置自定义尺寸
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:avplayerVc.player];
[self.view.layer addSublayer:layer];
layer.frame = self.view.bounds;
//进行modal
// [self presentViewController:avplayerVc animated:YES completion:nil];
//手动播放
[avplayerVc.player play];
}
- (void)done{
//获取系统Done事件 1> 监听退出全屏 2> 暂停
switch (self.playerController.playbackState) {
case MPMoviePlaybackStatePaused:
NSLog(@"执行done事件");
[self.playerController stop];
[self.playerController.view removeFromSuperview];
break;
default:
break;
}
}
//全屏
- (void)fullScreen{
[UIView animateWithDuration:0.3 animations:^{
//旋转
self.playerController.view.transform = CGAffineTransformRotate(self.playerController.view.transform, M_PI_2);
//全屏 视图占满屏幕
self.playerController.view.frame = [UIScreen mainScreen].bounds;
}];
}
- (void)stop{
[self.playerController stop];
}
- (void)testAvplayer{
//创建媒体资源对象 文件信息(文件大小,总时长,码率)
AVAsset *asset = [AVAsset assetWithURL:[[NSURL alloc] initWithString:@"http://baobab.wdjcdn.com/14676170652191(23).mp4"]];
//创建播放项目 播放状态,当前时间,持续时间等
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:asset];
//创建播放器
AVPlayer *avplayer = [[AVPlayer alloc] initWithPlayerItem:item];
self.avplayer = avplayer;
//设置视图展示播放内容
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:self.avplayer];
[self.view.layer addSublayer:layer];
//设置尺寸
layer.frame = self.view.bounds;
//设置播放
[avplayer play];
}
- (void)testPlayerController{
//设置播放地址
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"minion_01.mp4" ofType:nil]];
self.playerController = [[MPMoviePlayerController alloc] initWithContentURL:url];
//将播放视图手动设置
[self.view addSubview:self.playerController.view];
//设置尺寸 自定义播放器尺寸
self.playerController.view.frame = CGRectMake(0, 0, 400, 400);
//设置属性
self.playerController.backgroundView.backgroundColor = [UIColor redColor];
self.playerController.controlStyle = MPMovieControlStyleEmbedded;
//设置自定义控制
UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];
[btn addTarget:self action:@selector(fullScreen) forControlEvents:UIControlEventTouchUpInside];
[self.playerController.view addSubview:btn];
//设置缓冲
[self.playerController prepareToPlay];
[self.playerController play];
}
- (void)testPlayerVc{
//设置播放地址
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"minion_01.mp4" ofType:nil]];
//创建控制器
MPMoviePlayerViewController *playerVc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
//进行modal展示
[self presentViewController:playerVc animated:YES completion:nil];
}
@end