视频播放AVPlayerViewController

和视频播放有关的目录如下:
FFMpeg视频MetaData函数--av_dump_format()
AVPlayer播放器
FFMpeg 播放视频
直播秒开
由于MPMoviePlayerController的高度封装,导致定制界面基本不可能实现。iOS9.0之后AVFoundation框架中提供了AVPlayerViewController来替代MP,使用也是非常简单。
使用时导入2个头文件:

#import 
#import 

设置下资源路径Url和是否显示控制条就能快速的创建一个播放器了。

- (void)viewDidLoad
{
    [super viewDidLoad];

    // 设置资源路径
    NSString *path  = [[NSBundle mainBundle]  pathForResource:@"1" ofType:@"mp4"];
    NSURL *url = [NSURL fileURLWithPath:path];
    AVPlayer *avPlayer= [AVPlayer playerWithURL:url];
    // player的控制器对象
    AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];
    // 控制器的player播放器
    playerViewController.player = avPlayer;
    // 试图的填充模式
/*

    可以设置的值及意义如下:

     AVLayerVideoGravityResizeAspect   不进行比例缩放 以宽高中长的一边充满为基准

     AVLayerVideoGravityResizeAspectFill 不进行比例缩放 以宽高中短的一边充满为基准

     AVLayerVideoGravityResize     进行缩放充满屏幕

     */

 playerViewController.videoGravity = AVLayerVideoGravityResizeAspect; // 是否显示播放控制条 playerViewController.showsPlaybackControls = YES; // 设置显示的Frame playerViewController.view.frame = self.view.bounds; // 将播放器控制器添加到当前页面控制器中 [ self addChildViewController:_playerViewController]; // view一定要添加,否则将不显示 [ self.view addSubview:playerViewController.view]; // 播放 [playerViewController.player play]; }

效果如图所示

AVPlayer.png

AVPlayerViewController使用起来非常方便,但依然存在以下两个问题:

  • 支持的视频编码格式很有限:H.264、MPEG-4,扩展名(压缩格式):.mp4、.mov、.m4v、.m2v、.3gp、.3g2等,如果是RMVB就不行了,需要借助第三方的框架来实现更多格式的支持,如Kxmovie ,可以查看我另外一篇文章中的Kxmovie引用。
  • 实际开发中常常需要自定义界面,如点击按钮全屏播放,这时我们就需要使用AVPlayer自定义开发了,可以在我的另外一篇文章查看。


作者:Hardy_Hu
链接:https://www.jianshu.com/p/e3c6e0c77b9b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(IOS开发项目)