簡體   English   中英

iOS14 中缺少 AVPlayerViewController 播放控件

[英]AVPlayerViewController playback controls missing in iOS14

我有一個嵌入UIStackView的 AVPlayerViewController 。 該代碼在 iOS13 上運行良好,但在 iOS14 上我沒有播放控件。 當我點擊視圖時,播放控件不會出現,但當我做出捏合手勢時,視頻開始播放。 當視頻播放時,我突然得到了播放控件,我可以與它們互動。 我的TapableAVPlayerViewController不是問題,因為我用標准的AVPlayerViewController嘗試過它並且我得到了相同的行為。 有時我什至會看到一個很大的播放按鈕(就像在 iOS13 中那樣),當視圖完全加載時它會消失。

如何取回播放控件? 任何幫助表示贊賞! 謝謝!

private func setupVideo(for item: Item) {
    let avPlayer = AVPlayer()
    let avPlayerViewController = TapableAVPlayerViewController()
    avPlayerViewController.delegate = self
    avPlayerViewController.view.addInteraction(contextMenuInteraction)
    
    NotificationCenter.default.addObserver(self,
                                           selector: #selector(DetailViewController.playerItemDidReachEnd(_:)),
                                           name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
                                           object: avPlayer.currentItem)

    avPlayerViewController.player = avPlayer
    avPlayerViewController.view.translatesAutoresizingMaskIntoConstraints = false
    avPlayerViewController.view.heightAnchor.constraint(equalToConstant: view.bounds.width * CGFloat(item.height) / CGFloat(item.width)).isActive = true
    addChild(avPlayerViewController)
    stackView.removeArrangedSubview(imageView)
    stackView.insertArrangedSubview(avPlayerViewController.view, at: 0)
    avPlayerViewController.didMove(toParent: self)
    let url = URL(string: viewModel.link)
    let playerItem = AVPlayerItem(url: url!)
    avPlayer.replaceCurrentItem(with: playerItem)
    self.avPlayer = avPlayer
    self.avPlayerViewController = avPlayerViewController
}

我找到了解決辦法。 看起來UIContextMenuInteraction破壞了播放控件。 當我在整個AVPlayerViewController設置代碼之后設置交互設置時,我取回了播放控件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM