繁体   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