gpt4 book ai didi

ios - 将 AVPlayerViewController 嵌入到 UIView 中

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:22 25 4
gpt4 key购买 nike

我试图在 UIView 中播放视频,但视频播放器总是出现在我嵌入 AVPlayerViewController 的 UIView 之外。

以下是我目前所拥有的......

class ViewController: UIViewController {

let smallVideoPlayerViewController = AVPlayerViewController()

@IBOutlet weak var videoView: UIView!

override func viewDidLoad() {
super.viewDidLoad()

let myFileManager = FileManager.default
let mainBundle = Bundle.main
let resourcesPath = mainBundle.resourcePath!

guard let allItemsInTheBundle = try? myFileManager.contentsOfDirectory(atPath: resourcesPath) else {
return
}

let videoName = "test"

let videoPath = Bundle.main.path(forResource: videoName, ofType: "mp4")
let videoUrl = URL(fileURLWithPath: videoPath!)

smallVideoPlayerViewController.showsPlaybackControls = false
smallVideoPlayerViewController.player = AVPlayer(url: videoUrl)

videoView.addSubview(smallVideoPlayerViewController.view)

smallVideoPlayerViewController.view.frame = videoView.frame

smallVideoPlayerViewController.player?.play()
}
...
}

UIView 的背景颜色设置为白色。从屏幕截图可以看出,AVPlayer 在 UIView 之外。

Output of the code above

我尝试手动设置 AVPlayer 的尺寸和位置,但也没成功。

我正在使用 Xcode 9.2。该项目没有关于任何布局问题的警告。

我怎样才能完美对齐 AVPlayer,使其出现在 UIView 中。

谢谢

最佳答案

改变这一行:

smallVideoPlayerViewController.view.frame = videoView.frame

为此:

smallVideoPlayerViewController.view.frame = videoView.bounds

原因是因为 videoView.frame 在其父 View 中包含了您不想要的原点。 videoView.bounds 就是原点为 0,0 的大小。

当然,您可能想进一步设置自动调整大小蒙版以保持视频播放器帧不变,如下所示:

smallVideoPlayerViewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]

甚至可以进行全面的自动布局。

关于ios - 将 AVPlayerViewController 嵌入到 UIView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48049018/

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