У меня есть UIView, основанный на классе VideoPlayer. Когда я открываю видеофайл, он не «вписывается» в границы UIView. Это приводит к тому, что верх и низ находятся за пределами UIView и не могут видеть элементы управления воспроизведением.
Я попытался установить для параметра «Режим содержимого» значение «По размеру», «Соотношение сторон», «Заполнение аспектами» и т. Д., Но это не влияет.
Как мне сделать так, чтобы он «заполнял» UIView?
PlayerViewClass:
import AVFoundation
import AVKit
class PlayerViewClass: UIView {
override static var layerClass: AnyClass{
return AVPlayerLayer.self;
}
var playerLayer: AVPlayerLayer{
return layer as! AVPlayerLayer
}
var player: AVPlayer?{
get{
return playerLayer.player
}
set{
playerLayer.player = newValue
}
}
}
В моем основном классе ViewController.swift:
@IBOutlet weak var cameraView: PlayerViewlass!
func getCacheDirectory () -> URL {
// return the documents url
let fm = FileManager.default
let docsUrl = try! fm.url(for:.documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
return docsUrl
}
func getFileURL() -> URL{
// Get url of the file
let path = getCacheDirectory()
let filePath = path.appendingPathComponent("\(videoFileName)")
return filePath
}
@IBAction func playVideoFile(_ sender: Any) {
let path = getFileURL()
let player = AVPlayer(url: path)
cameraView.playerLayer.player = player
cameraView.player?.play()
}