Несколько AVPlayers с AVPlayerLayers исчезают во второй раз, когда нажимают контроллер просмотра

У меня есть контроллер просмотра с четырьмя (4) AVPlayers (с AVPlayerLayers, например, APPLE).

Если я вытащу этот контроллер представления и нажму новый экземпляр того же типа. Я не могу воспроизводить видео в одном или двух AVPlayers. Никаких ошибок и код работает нормально, AVPlayerLayers также говорит, что у него есть superLayer.

И что самое странное, если я нажму кнопку домой, вернусь на трамплин и войду в приложение, все видеоплееры как по волшебству начнут играть. Это похоже на перерисовку дерева представления или что-то в этом роде.

Любые подсказки или подсказки?

PS. Я жду готовности ресурсов, используя loadValuesAsynchronouslyForKeys.


person Max    schedule 22.09.2011    source источник
comment
Я также столкнулся с той же проблемой, когда, если у rootViewController есть AVPlayerLayer (w/AVPlayers), то я нажимаю другой viewController, когда я возвращаюсь к rootVC, видео сжимается независимо от свойства videoGravity. Следуя приведенному ниже решению, моя проблема была решена.   -  person John K. Chow    schedule 18.05.2014


Ответы (1)


У нас была аналогичная проблема. Следующий ответ привел к решению: AVplayer не отображается в ScrollView после 2 -3 раза

Вы должны вызвать: [AVPlayer replaceCurrentItemWithPlayerItem:nil]; когда ваш контроллер просмотра выгружается. Это может быть сложно, так как вы могли добавить наблюдателя или использовать addBoundaryTimeObserverForTimes:queue:usingBlock:

Также вы должны быть осторожны при проверке суперслоя: лучше проверить uiview.window при определении того, привязано ли ваше представление к иерархии представлений.

твой Фил

person hellphil    schedule 05.04.2012