gpt4 book ai didi

ios - AVPlayerViewController 有时显示黑屏

转载 作者:行者123 更新时间:2023-11-28 05:58:19 29 4
gpt4 key购买 nike

我创建了一个播放器并且大部分时间都运行良好。

在某些情况下(我没有意识到为什么)屏幕视频保持黑色,播放按钮不执行任何操作。

我验证了 url,没问题,这不是问题。

在我的 viewController 中,我可以使用不同的 url 多次调用此代码块,这就是我“重新启动”AVPlayerViewController 的原因。

    // Create an var in class...

// ....

self.videoPlayerViewController?.player?.pause()
self.videoPlayerViewController = AVPlayerViewController()
self.videoPlayerViewController?.player = viewModel.avPlayer

if let avController = self.videoPlayerViewController {
self.add(avController, in: self.playerView)
avController.player?.play()
} else {
// Error
}

这是函数添加:

extension UIViewController {

func add(_ viewController: UIViewController, in view: UIView) {
viewController.view.frame = view.bounds
addChildViewController(viewController)
view.addSubview(viewController.view)
viewController.didMove(toParentViewController: self)
view.clipsToBounds = true
}
}

有人知道哪里出了问题吗?提前致谢!!

最佳答案

经过这么多时间..我找到了解决方案。

问题是我没有在 AVPlayerController 中清理 AVPlayer。我还在 DispachQueue 中添加了新实例。

这是新代码:

self.videoPlayerViewController?.player?.pause()
self.videoPlayerViewController?.player = nil
self.videoPlayerViewController = nil
self.videoPlayerViewController = AVPlayerViewController()
self.videoPlayerViewController?.player = viewModel.avPlayer

在我添加 viewController 之后:

if let avController = self.videoPlayerViewController {
DispatchQueue.main.async { [weak self] in
if let strongSelf = self {
strongSelf.add(avController, in: strongSelf.playerView)
avController.player?.play()
}
}
} else {
// Error
}

希望对大家有所帮助!!

关于ios - AVPlayerViewController 有时显示黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50685681/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com