我有一個在應用程式中播放視頻的視圖。給出的約束是正確的,但在 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
uj5u.com熱心網友回復:
由于您使用的是框架,我認為您應該嘗試在viewDidLoad(). 也許,viewDidLayoutSubviews()當視圖大小被確定并且當顯示引數改變時(例如螢屏方向改變)也無效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/346316.html
上一篇:Swift包訪問修飾符
