Swift3 MPMoviePlayerViewController的使用,iOS播放视频

前端之家收集整理的这篇文章主要介绍了Swift3 MPMoviePlayerViewController的使用,iOS播放视频前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

iOS播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController。MPMoviePlayerViewController里面包含了一个MPMoviePlayerController,如果要在页面中内嵌播放器的话,使用MPMoviePlayerController,如果只需要播放一个视频,那么用MPMoviePlayerViewController也是很方便的。

下面是我自己封装的一个调用播放器的方法,用Swift3.0写的

import UIKit
import MediaPlayer

final class YSDMediaPlayer: NSObject {
    static let shared = YSDMediaPlayer()
    private override init() {}
    
    func showPlayerWithFile(path: String?,presentedViewController: UIViewController) {
        guard let pa = path else {
            return
        }
        autoreleasepool {
            let movieURL = URL(fileURLWithPath: pa)
            let movieController = MPMoviePlayerViewController(contentURL: movieURL)!
            movieController.moviePlayer.prepareToPlay()
            movieController.moviePlayer.controlStyle = .fullscreen
            movieController.view.backgroundColor = UIColor.black
            movieController.view.frame = CGRect(x: 0,y: 0,width: UIScreen.main.bounds.width,height: UIScreen.main.bounds.height)
            presentedViewController.present(movieController,animated: true) {
                NotificationCenter.default.addObserver(forName: NSNotification.Name.MPMoviePlayerPlaybackDidFinish,object: movieController.moviePlayer,queue: OperationQueue.main,using: { (noti) in
                    let theMovie = noti.object as! MPMoviePlayerController
                    NotificationCenter.default.removeObserver(self,name: NSNotification.Name.MPMoviePlayerPlaybackDidFinish,object: theMovie)
                    movieController.dismiss(animated: true,completion: nil)
                })
            }
        }
    }
}

moviePlayer.moviewControlMode = MPMovieControlModeDefault

MPMovieControlModeDefault 显示播放/暂停、音量和时间控制

MPMovieControlModeVolumeOnly 显示音量控制

MPMovieControlModeHidden 没有控制器

moviePlayer.scallingMode = MPMovieScallingModeAspectFit;

你可以使用下列宽高比值:

MPMovieScallingModeNone 不做任何缩放

MPMovieScallingModeAspectFit 适应屏幕大小,保持宽高比

MPMovieScallingModeAspectFill 适应屏幕大小,保持宽高比,可裁剪

MPMovieScallingModeFill 充满屏幕,不保持宽高比

你会观察到以下通知

MPMoviePlayerContentPreloadDidFinishNotification

当电影播放器结束对内容预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。

MPMoviePlayerScallingModeDidChangedNotification

用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。

MPMoviePlayerPlaybackDidFinishNotification

当电影播放完毕或者用户按下了Done按钮后发出。

原文链接:https://www.f2er.com/swift/322315.html

猜你在找的Swift相关文章