MPMoviePlayerController播放远程视频

使用AVPlayer默认是不带下方工具条的,而这个MPMoviePlayerController默认就自带了工具条,注意,这个类在iOS9之后已经被弃用了

导入头文件

#import 

播放器属性

/** 播放器*/
@property (nonatomic, strong) MPMoviePlayerController *player;

懒加载

#pragma mark - 懒加载
- (MPMoviePlayerController *)player
{
    if (!_player) {
        _player = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL URLWithString:@"http://v1.mukewang.com/a45016f4-08d6-4277-abe6-bcfd5244c201/L.mp4"]];
        _player.view.frame = CGRectMake(0, 200, self.view.bounds.size.width, self.view.bounds.size.width * 9 /16);
        _player.controlStyle = MPMovieControlStyleFullscreen;
        [self.view addSubview:_player.view];
    }
    return _player;
}

注意 播放器还有很多属性可以设置,具体可以参考文档,比如是否全屏等等

点击屏幕播放

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self.player play];
}

效果呢是这样的

MPMoviePlayerController播放远程视频_第1张图片
MPMoviePlayerController.png

上面的在iOS9之后被弃用了,推荐使用AVKit框架下的AVPlayerViewController
首先,AVPlayerViewController是包含在AVKit框架中的,而AVPlayer是包含在AVFoundation框架中的,所以要导入两个头文件

导入头文件

#import 
#import 

播放器属性

/** 播放器*/
@property (nonatomic, strong) AVPlayerViewController *player;

懒加载

#pragma mark - 懒加载
- (AVPlayerViewController *)player
{
    if (!_player) {
        //创建控制器
        _player = [[AVPlayerViewController alloc]init];
        //创建播放器
        AVPlayer *player = [[AVPlayer alloc]initWithPlayerItem:[AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://v1.mukewang.com/a45016f4-08d6-4277-abe6-bcfd5244c201/L.mp4"]]];
        //设置图层
        AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:player];
        layer.videoGravity = AVLayerVideoGravityResize;
        layer.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width * 9 / 16);
        [self.view.layer addSublayer:layer];
        //设置播放器为控制器内部的播放器
        _player.player = player;
    }
    return _player;
}

最后一步播放,如果这里像上面那样直接调用[self.player play]亲测是不会显示出下方的工具条的,需要这样来调用

播放远程视频

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self showViewController:self.player sender:nil];
}

效果图

MPMoviePlayerController播放远程视频_第2张图片
AVPlayerViewController.png

同时 默认的上方进度条是不支持点击更改播放进度的

你可能感兴趣的:(MPMoviePlayerController播放远程视频)