【问题标题】:How to recognize a tap gesture while using an MPMoviePlayerController如何在使用 MPMoviePlayerController 时识别点击手势
【发布时间】:2016-10-28 03:55:35
【问题描述】:

我正在尝试在视频播放时识别点击手势,以便我可以像 snapchat 一样将其关闭,但是,它说 MPMoviePlayerControllers 没有成员可以添加触摸手势,这是真的还是我在使用方法不对?

var MP4 : NSData?
var MarkerLong : CLLocationDegrees?
var MarkerLat : CLLocationDegrees?
var Url : String?
var videoPlayer : MPMoviePlayerController!

private var firstAppear = true

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    if firstAppear {
        do {
            try playVideo()
            firstAppear = false
        } catch AppError.InvalidResource(let name, let type) {
            debugPrint("Could not find resource \(name).\(type)")
        } catch {
            debugPrint("Generic error")
        }

    }
}

private func playVideo() throws {

    self.videoPlayer = MPMoviePlayerController()
    self.videoPlayer.repeatMode = MPMovieRepeatMode.None
    self.videoPlayer.contentURL = NSURL(string: Url!)
    self.videoPlayer.controlStyle = MPMovieControlStyle.None
    self.view.addSubview(self.videoPlayer.view)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(PlayVideoViewController.videoPlayBackDidFinish(_:)), name: MPMoviePlayerPlaybackDidFinishNotification, object: self.videoPlayer)
    self.videoPlayer.view.frame.size = CGSizeMake(640, 1136)
    self.videoPlayer.view.center = self.view.center
    self.videoPlayer.play()
    let gesture = UITapGestureRecognizer(target: self, action: "someAction:")
    self.videoPlayer.addGestureRecognizer(gesture)

}

【问题讨论】:

    标签: ios swift mp4 mpmovieplayer


    【解决方案1】:

    我会推荐使用 AVPlayerViewController,但请确保不要将其子类化,因为 Apple 声明不这样做。

    1) MPMoviePlayer 已弃用(不再使用此代码)

    2) AVPlayerViewController 有一组更复杂的代码来允许更多的自定义。

    如果你真的想自定义一些东西,你可以继承 AVPlayer 并制作你自己的自定义视图来播放视频,但你必须添加自己的暂停/开始等...

    【讨论】:

      【解决方案2】:

      MPMoviePlayerController 是一个视图控制器视图中添加了手势识别器。您需要将此手势添加到 MPMoviePlayerController 的 view

      (更好的是,停止使用 MPMoviePlayerController;它已被弃用。)

      【讨论】:

      • 将其添加到 MPMoviePlayerControllers 视图不起作用,因为它位于 MPMoviePlayer 后面
      • 我没有说它会起作用。 :) 我告诉你为什么你的代码不能编译。这就是你问的(据我所知)......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多