gpt4 book ai didi

ios - swift 3 - 旋转到横向时全屏播放视频

转载 作者:行者123 更新时间:2023-11-29 11:47:22 40 4
gpt4 key购买 nike

我有一个容器 View ,当设备为纵向时,它会在其中播放视频。我希望视频在设备旋转时自动全屏播放。我已经尝试过这段代码来检测设备何时旋转,但它不会将容器更改为全屏

override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {

if (UIDevice.current.orientation.isLandscape) {

videoContainerView.frame = self.view.frame
// self.videoContainerView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height) // this didn't work to....
print("Device is landscape")
}
else{
print("Device is portrait")
}

}

视频在 avplayer 播放器上播放。谢谢

最佳答案

我找到了另一种更好的方法来解决这个问题,因为这样控件是可见的。主要思想是将 AVPlayerViewController 对象移动到一个新的 subview 并将其框架设置为全屏。这是我的代码..

override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {

if (UIDevice.current.orientation.isLandscape) {


DispatchQueue.main.async {
self.playerController.player = self.player
self.addChildViewController(self.playerController)
self.view.addSubview(self.playerController.view)
self.playerController.view.frame = self.view.frame

}
print("Device is landscape")
}

当设备旋转回纵向时,将此 subview 添加到上一帧并再次设置其大小。这是我的代码。

else{
print("Device is portrait")
videoContainerView.addSubview(playerController.view)
playerController.view.frame = videoContainerView.bounds
controllsContainerView.frame = videoContainerView.bounds
}
}

希望对您有所帮助。祝你好运!

关于ios - swift 3 - 旋转到横向时全屏播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42947215/

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