2017-01-24 20 views
2

Я исследовал другие ответы на сообщества и попытался это -Воспроизведение видео в UICollectionViewCell. Видео воспроизводится нормально, но прокручивать производительность на CollectionView

player = AVPlayer() 
    player.volume = 0.0 
    player.actionAtItemEnd = AVPlayerActionAtItemEnd.None 
    addPlayerLayer() 

    let asset = AVAsset.init(URL: videoURL) 
    asset.loadValuesAsynchronouslyForKeys(["duration", "playable"]) { 

     dispatch_async(dispatch_get_main_queue(), {() -> Void in 
       let item = AVPlayerItem.init(asset: asset) 
       self.player.replaceCurrentItemWithPlayerItem(item) 
       self.player.play() 
     }) 
    } 

Но всякий раз, когда есть медленная сеть, есть заметное отставание/икота при прокрутке CollectionView. Я делаю что-то неправильно? Пожалуйста, помогите

+0

Возможный дубликат [? AVPlayerViewController в UICollectionViewCell ошибка] (http://stackoverflow.com/questions/33928536/avplayerviewcontroller-in-uicollectionviewcell-bug) –

+0

Это не дублировать его о том прокручивая производительность коллекцииView во время воспроизведения видео. –

+0

Как вы это сделали? у меня есть куча видео с сервера, которые нужно играть сразу в виде коллекции по горизонтали .. –

ответ

1

Пожалуйста, ознакомьтесь с Facebook AsyncDisplayKit (движок за фидами Facebook и Instagram), вы можете в большинстве случаев визуализировать видео по фоновым потокам с помощью своего AVideoNode.

ИЛИ:

player = AVPlayer() 
player.volume = 0.0 
player.actionAtItemEnd = AVPlayerActionAtItemEnd.None 
addPlayerLayer() 
dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0), {} 
    let asset = AVAsset.init(URL: videoURL) 
    asset.loadValuesAsynchronouslyForKeys(["duration", "playable"]) { 
     dispatch_async(dispatch_get_main_queue(), {() -> Void in 
       let item = AVPlayerItem.init(asset: asset) 
       self.player.replaceCurrentItemWithPlayerItem(item) 
       self.player.play() 
     }) 
    } 
}) 
+0

Я пробовал как ваш код, так и библиотеку facebook, ни одна из них не разрешает проблему с прокруткой. –