小编Pra*_*ire的帖子

检测 AVPlayerViewController 是否正在播放视频或缓冲并向播放器添加叠加层

  1. 我必须检测视频是处于播放模式还是缓冲模式。我正在从 URL 加载视频。我已经尝试了下面的代码,一旦视频开始播放,我就可以进行跟踪,但不能在处于缓冲状态时进行跟踪。
  2. 另外,我想在我的播放器中添加一个叠加视图。我试图在 AVPlayer 中添加叠加层,但是在全屏模式下叠加层消失了。

需要一些建议。提前致谢。下面是我的代码:

    let playerAV = AVPlayerViewController()
    var player = AVPlayer()
    player = AVPlayer(URL: url)
    print(url)
    playerAV.player = player
    playerAV.view.frame = CGRectMake(0, 0,  self.videoView.frame.width,  self.videoView.frame.height)
    self.addChildViewController(playerAV)
    self.videoView.addSubview(playerAV.view)
    playerAV.didMoveToParentViewController(self)
    playerAV.player?.play()
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChannelDetailViewController.notificationObserver(_:)), name:AVPlayerItemDidPlayToEndTimeNotification , object: player.currentItem)
        _ = UIDevice.beginGeneratingDeviceOrientationNotifications
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChannelDetailViewController.deviceOrientationDidChange(_:)) , name:
        UIDeviceOrientationDidChangeNotification, object: nil)
    player.addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions.New, context: nil)
  player.addPeriodicTimeObserverForInterval(CMTime(value: 1, timescale: 3), queue: dispatch_get_main_queue()) { [weak self] time in
    self?.handlePlayerStatus(time)
  }

  func handlePlayerStatus(time: CMTime) {
     if player.status == .ReadyToPlay { …
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift avplayerviewcontroller

5
推荐指数
1
解决办法
6711
查看次数

2
推荐指数
1
解决办法
994
查看次数

检查有效网址在avplayercontroller中播放?

我有三个网址,必须检查这些网址是否有视频链接播放.如果它不包含网址中的视频并从下一个网址播放视频,我必须esc链接.以下代码将有助于跟踪播放状态.

let playerAV = AVPlayerViewController()
  var player = AVPlayer()
  playerAV.player = player
  playerAV.view.frame = CGRectMake(0, 0,  self.videoView.frame.width,  self.videoView.frame.height)
  self.addChildViewController(playerAV)
  self.videoView.addSubview(playerAV.view)
  playerAV.didMoveToParentViewController(self)
  playerAV.player?.play()
  addObserverOfMoviePlayer()

 NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChannelDetailViewController.notificationObserver(_:)), name:AVPlayerItemDidPlayToEndTimeNotification , object: player.currentItem)
    _ = UIDevice.beginGeneratingDeviceOrientationNotifications
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChannelDetailViewController.deviceOrientationDidChange(_:)) , name:
      UIDeviceOrientationDidChangeNotification, object: nil)
    playerAV.player!.addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions.New, context: nil)
    playerAV.player!.currentItem!.addObserver(self, forKeyPath: "playbackBufferEmpty", options: NSKeyValueObservingOptions.New, context: nil)
    playerAV.player!.currentItem!.addObserver(self, forKeyPath: "playbackLikelyToKeepUp", options: NSKeyValueObservingOptions.New, context: nil)

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {

    if keyPath == "rate" …
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift avplayerviewcontroller

1
推荐指数
1
解决办法
1494
查看次数

标签 统计

ios ×3

avplayer ×2

avplayerviewcontroller ×2

swift ×2

xcode ×1

xcode8 ×1