Слой AVPlayer иногда не отображает видеоконтент

Слой AVPlayer иногда не показывает видеоконтент, но воспроизводит звук. Это происходит несколько раз, а не каждый раз. Вот мои строки кода:

 override func viewDidLoad() {
        super.viewDidLoad()
        self.tempVideoPath = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("tmpMov.mov")
        self.player = AVPlayer(url: self.tempVideoPath!)
}

 override func viewDidAppear(_ animated: Bool) {
     super.viewDidAppear(animated)
     self.playerLayer = AVPlayerLayer(player: self.player)
     self.playerLayer?.frame = self.videoPlayer.bounds
     self.playerLayer?.backgroundColor = UIColor.yellow.cgColor
     self.videoPlayer.layer.addSublayer(playerLayer!)
     print("player = \(playerLayer?.bounds)")

 }

Помогите мне решить эту проблему.


person Payal Maniyar    schedule 28.11.2016    source источник
comment
self.player не инициализирован. Или это где-то в другом месте?   -  person PrafulD    schedule 28.11.2016
comment
@PrafulD инициализирован   -  person Payal Maniyar    schedule 28.11.2016
comment
проверьте это... может быть вам полезно stackoverflow.com/questions/ 22149931/   -  person EI Captain v2.0    schedule 28.11.2016
comment
@PayalManiyar, если предложение Эль-Капитана не сработает. Можете ли вы опубликовать больше вашего кода?   -  person PrafulD    schedule 28.11.2016
comment
Какой у вас URL? Пожалуйста, опубликуйте еще немного кода, связанного с инициализацией.   -  person Wolverine    schedule 28.11.2016
comment
@Росомаха, проверь мой обновленный вопрос   -  person Payal Maniyar    schedule 28.11.2016
comment
@PrafulD проверьте мой обновленный вопрос   -  person Payal Maniyar    schedule 28.11.2016
comment
Я использую версию Xcode 8.0. Будет ли это ошибкой Xcode 8.0?   -  person Payal Maniyar    schedule 28.11.2016
comment
если self.tempVideoPath равно нулю. Тогда также вы не сможете видео. проверьте этот путь 'rmcdn.2mdn.net/Demo/html5/output.mp4'   -  person PrafulD    schedule 28.11.2016
comment
проверьте, что self.tempVideoPath и self.player не равны нулю. Также проверьте правильность файла .mov.   -  person Wolverine    schedule 29.11.2016
comment
Он воспроизводит аудио или видео, поэтому файл не может находиться по указанному пути.   -  person Payal Maniyar    schedule 29.11.2016
comment
есть ли другое решение? @PrafulD,@Росомаха,@EI Captain v2.0   -  person Payal Maniyar    schedule 29.11.2016
comment
@PayalManiyar, ты нашел решение? У меня такая же проблема.   -  person zvjerka24    schedule 13.06.2017


Ответы (1)


проблема с вашим кодом в том, что границы videoPlayer могут измениться. Поэтому вам нужно добавить следующий код в ваш контроллер представления, чтобы соответствующим образом изменить кадр AVPlayerPlayer:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    playerLayer?.frame = view.bounds
}

Надеюсь, поможет.

person jajo    schedule 26.12.2018