视频播放AVPlayerViewController

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

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

设置下资源路径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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值