MPMoviePlayerController
1. 父類是NSObject
2. 相比于AVPlayer播放視頻, 自帶一些控制按鈕
3. IOS9.0后禁用
注意: 此控制器不是視圖控制器, 不能直接彈出
播放器的播放狀態(tài), 是通過通知的方式告訴外界
使用MPMoviePlayerController播放視頻
-
objc
// 0. 準(zhǔn)備工作 // 01 導(dǎo)入框架 #import <MediaPlayer/MediaPlayer.h> // 02 iOS9.0 網(wǎng)絡(luò)請求適配(HTTPS-->HTTP)需在info.plist配置NSAppTransportSecurity // 03 設(shè)置成員變量 @property (nonatomic, readwrite, strong) MPMoviePlayerController *moviePlayer; // 1. 根據(jù)URL, 創(chuàng)建控制器 MPMoviePlayerController NSURL *remoteURL = [NSURL URLWithString:@"http://v1.mukewang.com/57de8272-38a2-4cae-b734-ac55ab528aa8/L.mp4"]; // 記錄為成員變量 _moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:remoteURL]; // 2. 設(shè)置播放視圖frame, 添加到需要展示的視圖上 // 2.1 設(shè)置播放視圖的frame self.moviePlayer.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height * 9 / 16); // 2.2 設(shè)置播放視圖控制樣式 self.moviePlayer.controlStyle = MPMovieControlStyleFullscreen; // 2.3 添加播放視圖到要顯示的視圖 [self.view addSubview:self.moviePlayer.view]; // 3. 播放 [self.moviePlayer play]; -
swift
// 0. 準(zhǔn)備工作 // 01 導(dǎo)入框架 import MediaPlayer // 02 iOS9.0 網(wǎng)絡(luò)請求適配(HTTPS-->HTTP)需在info.plist配置NSAppTransportSecurity var controller: MPMoviePlayerController? override func viewDidLoad() { super.viewDidLoad() // 1. 根據(jù)URL, 創(chuàng)建控制器 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, 這個(gè)控制器, 內(nèi)部的一些操作, 都是通過通知, 來傳遞給外界的 } override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() // 2.2 設(shè)置播放視圖frame controller?.view.frame = view.bounds } override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { // 3. 播放視頻 controller?.play() // controller?.pause() // controller?.stop() }