【问题标题】:how add tap gesture to play a video player如何添加点击手势来播放视频播放器
【发布时间】:2018-05-15 14:29:43
【问题描述】:
videoPlayer = (AVPlayer.init(url: url as URL) as AVPlayer?)!

videoPlayer.actionAtItemEnd = .none

var videoLayer = AVPlayerLayer(player: videoPlayer)

videoLayer.frame = CGRect(x: 0, y: 0, width: (pickVideo?.frame.width)!, height: (pickVideo?.frame.height)!)

pickVideo?.layer.addSublayer(videoLayer)

videoLayer.addSublayer((closeImage?.layer)!)

let tapGueturePlayVideo = UITapGestureRecognizer(target: self, action: #selector(playVideo(sender:)))
tapGueturePlayVideo.delegate = self
tapGueturePlayVideo.numberOfTapsRequired = 1
pickVideo?.addGestureRecognizer(tapGueturePlayVideo)
pickVideo?.isUserInteractionEnabled = true

我在这里为 Tapgesture 创建了函数:

func playVideo(sender: UITapGestureRecognizer) {

    self.videoPlayer.play()

}

如果长按并点按视频播放流畅..如果我点按屏幕侧面并尝试再次播放它不播放.. 点按时断点调用但玩家不玩

【问题讨论】:

    标签: ios swift uitapgesturerecognizer


    【解决方案1】:

    您必须使用 prepareToPlay 将 AVPlayer 设置回流的开头并将 currentPlaybackTime 设置为 0。

    AVPlayer doesn't play more than one time

    videoPlayer.currentPlaybackTime = 0
    videoPlayer.prepareToPlay()
    

    【讨论】:

      【解决方案2】:

      最好的方法是使用AVPlayerViewControllercontentOverlayView

      像这样:

       override func viewDidLoad() {
          super.viewDidLoad()
      
          let videoURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")!
          videoPlayer = AVPlayer(url: videoURL)
          let avPlayerController = AVPlayerViewController()
          avPlayerController.player = videoPlayer
          avPlayerController.view.frame = CGRect(x: 100, y: 50, width:200, height: 300)
          avPlayerController.showsPlaybackControls = false
          self.view.addSubview(avPlayerController.view)
      
          let tapGesture:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.playVideo(sender:)))
          tapGesture.numberOfTapsRequired = 1
          avPlayerController.contentOverlayView?.addGestureRecognizer(tapGesture)
      }
      
      
       @objc func playVideo(sender: UITapGestureRecognizer) {
      
              self.videoPlayer?.play()
      
          }
      

      【讨论】:

      • 使用未解决的标识符“AVPlayerViewController”面临此问题
      • 只需添加import AVKit
      • 我在一个示例项目中尝试了代码,单击播放视频...但是当我再次点击时,视频无法播放!如何解决此问题
      猜你喜欢
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 2019-08-13
      • 2015-04-03
      • 1970-01-01
      相关资源
      最近更新 更多