MPMoviePlayerController
1. 父类是NSObject
2. 相比于AVPlayer播放视频, 自带一些控制按钮
3. IOS9.0后禁用
注意: 此控制器不是视图控制器, 不能直接弹出
播放器的播放状态, 是通过通知的方式告诉外界
使用MPMoviePlayerController播放视频
-
objc
// 0. 准备工作 // 01 导入框架 #import <MediaPlayer/MediaPlayer.h> // 02 iOS9.0 网络请求适配(HTTPS-->HTTP)需在info.plist配置NSAppTransportSecurity // 03 设置成员变量 @property (nonatomic, readwrite, strong) MPMoviePlayerController *moviePlayer; // 1. 根据URL, 创建控制器 MPMoviePlayerController NSURL *remoteURL = [NSURL URLWithString:@"http://v1.mukewang.com/57de8272-38a2-4cae-b734-ac55ab528aa8/L.mp4"]; // 记录为成员变量 _moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:remoteURL]; // 2. 设置播放视图frame, 添加到需要展示的视图上 // 2.1 设置播放视图的frame self.moviePlayer.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height * 9 / 16); // 2.2 设置播放视图控制样式 self.moviePlayer.controlStyle = MPMovieControlStyleFullscreen; // 2.3 添加播放视图到要显示的视图 [self.view addSubview:self.moviePlayer.view]; // 3. 播放 [self.moviePlayer play];
-
swift
// 0. 准备工作 // 01 导入框架 import MediaPlayer // 02 iOS9.0 网络请求适配(HTTPS-->HTTP)需在info.plist配置NSAppTransportSecurity var controller: MPMoviePlayerController? override func viewDidLoad() { super.viewDidLoad() // 1. 根据URL, 创建控制器 MPMoviePlayerController let url = NSURL(string: "http://v1.mukewang.com/3e35cbb0-c8e5-4827-9614-b5a355259010/L.mp4") controller = MPMoviePlayerController(contentURL: url!) // 2.1 添加到需要展示的视图上 view.addSubview((controller?.view)!) // MPMoviePlayerController, 这个控制器, 内部的一些操作, 都是通过通知, 来传递给外界的 } override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() // 2.2 设置播放视图frame controller?.view.frame = view.bounds } override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { // 3. 播放视频 controller?.play() // controller?.pause() // controller?.stop() }