我有一个视图,播放应用程序中的视频。给出的约束是正确的,但在像iPhone 11,iPhone 11 pro这样的设备中,视图在后端留下了一些空间。添加截图以供参考。


*需要帮助将视频显示设置为全视图。
约束:对齐尾部安全区域对齐顶部安全区域对齐前导安全区域高度等于- 150
代码:
import UIKit
import AVFoundation
class VideoViewController: UIViewController {
@IBOutlet weak var videoView: UIView!
var player: AVQueuePlayer!
var playerItem: AVPlayerItem!
var playerLooper: AVPlayerLooper!
override func viewDidLoad() {
super.viewDidLoad()
videoView()
}
func videoViewForLogin() {
//video
guard let url = Bundle.main.url(forResource: "splashpanoslice", withExtension: "mp4") else {return}
let playerPath = AVPlayer(url: url)
player = AVQueuePlayer()
let playerLayer = AVPlayerLayer(player: player)
playerItem = AVPlayerItem(url: url)
let duration = Int64( ( (Float64(CMTimeGetSeconds(AVAsset(url: url).duration)) * 10.0) - 1) / 10.0 )
playerLayer.frame = videoView.bounds
playerLooper = AVPlayerLooper(player: player, templateItem: playerItem, timeRange: CMTimeRange(start: CMTime.zero, end: CMTimeMake(value: duration, timescale: 1)) )
playerLayer.videoGravity = .resizeAspectFill
videoView.layer.insertSublayer(playerLayer, at: 1)
player.play()
}
}函数代码取自引用- How do i make a looping video in swift
发布于 2021-11-03 07:28:35
既然你正在使用框架,我认为你应该尝试将布局代码移到比viewDidLoad()更晚的地方。当视图大小被确定并且当显示参数改变(例如,屏幕方向已经改变)时也无效时,可能是viewDidLayoutSubviews()。
https://stackoverflow.com/questions/69820507
复制相似问题