gpt4 book ai didi

swift - AVPlayerLayer 不播放视频但音频良好

转载 作者:行者123 更新时间:2023-11-30 10:29:10 24 4
gpt4 key购买 nike

我有一个令人困惑的问题。我在我的类中声明了这些变量:

var audioPlayer = AVPlayer()
var videoPlayer = AVPlayer()
var videoLayer = AVPlayerLayer()

我有这些用于添加 videoPlayer 容器的代码:

let aspectHeight = view.frame.width * 9/16
let viewFrame = CGRect(x: 5, y: 0, width: view.frame.width - 10, height: aspectHeight)
let layerFrame = CGRect(x: 0, y: 0, width: view.frame.width - 10, height: aspectHeight)

videoPlayerContainerView.frame = viewFrame
videoPlayerViewController.frame = viewFrame
videoLayer.frame = layerFrame

videoLayer.backgroundColor = UIColor.green.cgColor
videoPlayerContainerView.layer.addSublayer(videoLayer)
videoPlayerContainerView.addSubview(videoPlayerViewController)

videoElementContainerView.addView(newView: videoPlayerContainerView)

我也有这个函数(我用临时 URL 替换了传递的参数):

@IBAction func pausePlayVideo(_ sender: CustomButton) {
let videoString = videoSourceURL + (sender.paramaters["thisVideoURL"] as! String)
let videoURL = URL(string: "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")
videoPlayer = AVPlayer(url: videoURL!)
videoLayer = AVPlayerLayer(player: videoPlayer)

videoPlayer.play()
}

我在这里调用它:

pausePlayButton.addTarget(self, action: #selector(ModuleLessonElementsViewController.pausePlayVideo(_:)), for: .touchUpInside)
pausePlayButton.paramaters["thisVideoURL"] = content

这是 View : The layer was added, the audio plays but the video does not.

按下按钮时,将播放音频,但不会播放视频。我在这里错过了一些重要的事情吗?

最佳答案

这很简单。早些时候,您说:

videoPlayerContainerView.layer.addSublayer(videoLayer)

好的,现在您有一个与任何播放器关联的播放器层videoLayer,并且它现在位于界面中。很好。

稍后,当按下按钮时,您会说:

@IBAction func pausePlayVideo(_ sender: CustomButton) {
// ...
videoLayer = AVPlayerLayer(player: videoPlayer)
videoPlayer.play()
}

那么刚才发生了什么?您丢弃了 videoLayer 中对之前添加到界面中的图层的引用,并用您刚刚创建的全新播放器图层替换它,而这不是在界面中。好的,所以与播放器关联的视频层不在界面中,因此您可以听到播放器的声音,但看不到任何内容。

关于swift - AVPlayerLayer 不播放视频但音频良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59483652/

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