Видео "плеере АВ" не сторона по горизонтали
Создание моего первого приложения и попытка подогнать фоновое видео по горизонтали.
Ниже приведен код, который я использую
override func viewDidLoad()
{
super.viewDidLoad()
let URL = Bundle.main.url(forResource: "homedocapp", withExtension: "mp4")
Player = AVPlayer.init(url: URL!)
PlayerLayer = AVPlayerLayer(player: Player)
PlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
PlayerLayer.frame = self.view.frame; PlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
PlayerLayer.zPosition = -1
Player.actionAtItemEnd = AVPlayerActionAtItemEnd.none
self.view.layer.addSublayer(PlayerLayer)
Player.play()
view.layer.insertSublayer(PlayerLayer, at: 0)
NotificationCenter.default.addObserver(self, selector: #selector(playerItemReachEnd(notification:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: Player.currentItem)
}
Горизонтальный дисплей AVPlayer
Спасибо за авансы
3 ответа:
Когда вызывается 'viewDidLoad', вид все еще может иметь неправильный размер. Таким образом, ваш игрок также будет иметь неправильный размер. Попробуйте переместить код в функцию 'viewDidLayoutSubviews':
override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() // Set up your player layer instance here }
Вы должны изменить размер плеера с ограничениями, когда он инициализируется в viewDidLoad, cause self.вид.тогда фрейм не верен.
При вращении я получаю разделенный экран.
class ViewController: UIViewController { var Player: AVPlayer! var PlayerLayer: AVPlayerLayer! override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() let URL = Bundle.main.url(forResource: "homedocapp", withExtension: "mp4") Player = AVPlayer.init(url: URL!) PlayerLayer = AVPlayerLayer(player: Player) PlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill PlayerLayer.frame = view.layer.frame Player.actionAtItemEnd = AVPlayerActionAtItemEnd.none Player.play() view.layer.insertSublayer(PlayerLayer, at: 0) NotificationCenter.default.addObserver(self, selector: #selector(playerItemReachEnd(notification:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: Player.currentItem) }
Изучение трудного пути