【问题标题】:AVPlayer full screen issue only for iPhone xAVPlayer 全屏问题仅适用于 iPhone x
【发布时间】:2018-03-05 07:39:06
【问题描述】:

我使用 Av 播放器视图控制器创建了一个启动视频。它适用于除 I Phone X 之外的所有设备。我尝试更改视频重力框架和所有内容,但它不起作用。有什么想法吗?这是示例代码:

guard let videoPath = Bundle.main.path(forResource: "Redtaxi-splash", ofType:"mov") else {
    return
}

let videoURL = URL(fileURLWithPath: videoPath)
let player = AVPlayer(url: videoURL)
playerViewController = AVPlayerViewController()
playerViewController?.player = player
playerViewController?.showsPlaybackControls = false
playerViewController?.view.frame = view.frame
playerViewController?.view.backgroundColor = .white
playerViewController?.view.contentMode = .scaleAspectFill


NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying(note:)),
                                       name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)

view.addSubview((playerViewController?.view)!)
playerViewController?.player?.play()

【问题讨论】:

  • 您是使用自动布局还是代码来处理 UI?
  • 为了确定你的问题,它在 iPhone X 上的样子(确切的问题是什么)?
  • @iDeveloper 基于playerViewController?.view.frame = view.frame 看来他不是:)
  • @AhmadF 其实他只是更新了代码 现在我可以看到了????
  • @AhmadF for iPhone X 它在屏幕顶部和底部显示黑色..但它在其他设备上工作正常..

标签: ios swift avplayer swift4 avplayerviewcontroller


【解决方案1】:

我通过为播放器视图控制器提供视频重力来解决此问题:

playerViewController.videoGravity = .resizeAspectFill

这将通过使用视频重力作为 avplayer 视图控制器的方面填充来解决此问题。这是视频重力的文档:

视频重力决定了视频内容在播放器层范围内的缩放或拉伸方式。

【讨论】:

    【解决方案2】:

    斯威夫特 4

    playerViewController.videoGravity = AVLayerVideoGravity.resizeAspectFill.rawValue
    

    【讨论】:

      猜你喜欢
      • 2018-08-17
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      相关资源
      最近更新 更多