MPMoviePlayerViewController是一个很好用的视频播放类,简单的三五行代码就可以解决视频播放问题。
在iOS9.0之后,这个类被弃用了,它的代替类为:AVPlayerViewController。
官方文档:
(NS_DEPRECATED_IOS(3_2, 9_0, "Use AVPlayerViewController in AVKit."))
**## 使用说明 ##**
之后,我看了看官方对这个类的介绍,发现用起来和MPMoviePlayerViewController一样的简单、便捷,话不多说,上代码:
AVPlayerViewController *playerVC = [[AVPlayerViewController alloc]init];
playerVC.player = [AVPlayer playerWithURL:fileURL];
[self presentViewController:playerVC animated:YES completion:nil];
这几句代码就解决了视频的简单播放问题。
**## 属性介绍 ##**
AVPlayerViewController还有几个属性可以对播放界面做一些简单的设置:
@property (nonatomic) BOOL showsPlaybackControls;
这个属性用来控制视屏播放控制UI是否显示的布尔值,默认值是YES,显示控制UI。
官方介绍:
如果你不想在应用的可视区域上看到任何控制UI,你就把这个属性的值设为NO。
但是要注意,你不能用它来暂时改变控制UI的显示状态,因为它会创建或销毁控制UI。
@property (nonatomic, copy) NSString *videoGravity;
这个属性是一个用来控制视屏如何显示在AVPlayerLayer上的一个字符串。
官方介绍:
可选值是AVLayerVideoGravityResizeAspect, AVLayerVideoGravityResizeAspectFill and AVLayerVideoGravityResize.
AVLayerVideoGravityResizeAspect 是默认值.对这些可选值的描述在<AVFoundation/AVAnimation.h>.
@property (nonatomic, readonly, getter = isReadyForDisplay) BOOL readyForDisplay;
官方介绍:
这个布尔值用来指示相对应的AVPlayer的视频的第一帧是否已经做好了被显示给当前Item的准备。
@property (nonatomic, readonly) CGRect videoBounds;
官方介绍:
这个属性描述了,播放的视频所在视图上显示的视频图片的位置和尺寸。
@property (nonatomic, readonly, nullable) UIView *contentOverlayView;
官方介绍:
使用这个视图,在视频内容和控件之间添加额外的自定义视图。
@property (nonatomic) BOOL allowsPictureInPicturePlayback NS_AVAILABLE_IOS(9_0);
官方介绍:
是否允许Picture in Picture播放控制. 默认值是YES.
@property (nonatomic, weak, nullable) id <AVPlayerViewControllerDelegate> delegate NS_AVAILABLE_IOS(9_0);
代理方法都是关于Picture in Picture的方法。