Вот мой код для запуска видео:
let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
let playerAV = AVPlayer(url: videoURL! as URL)
let playerLayerAV = AVPlayerLayer(player: playerAV)
playerLayerAV.frame = ...
self.view.layer.addSublayer(playerLayerAV)
playerAV.play()
Я вижу предварительный просмотр видео, я также вижу, что он загружается, я даже могу перемещать ползунок и видеть, что предварительный просмотр меняется навремя я выбираю.Но если я нажму на игру - ничего не произойдет.Я пытался вручную нажать кнопку «Play», я пытался программно вызвать .play
, состояние кнопки «Play» меняется на «||»но затем сразу переключается на «>».
Я также отслеживаю отладочную информацию, связанную с состоянием игрока, и замечаю следующее.Право, когда я создал игрока, статус ниже:
Status: ReadyToPlay
TimeControl: WaitingToPlayAtSpecifiedRate
ReasonToWait: AVPlayerWaitingToMinimizeStallsReason
Time: {0/1 = 0.000}
Rate: 1
Loaded Time Ranges: [Location=0,Length=0]
И он почти мгновенно меняет свой TimeControl: Paused и Rate: 0:
Status: ReadyToPlay
TimeControl: Paused
ReasonToWait:
Time: {0/1 = 0.000}
Rate: 0
Loaded Time Ranges: [Location=0,Length=0]
В обоих случаях это показывает, чтоplayerItem.LoadedTimeRanges
имеет один элемент, но длина и расположение равны 0, когда пользовательский интерфейс показывает, что видео полностью загружено и готово к воспроизведению.
![enter image description here](https://i.stack.imgur.com/zMFiv.png)