2016-03-11 3 views
1

Я использую AVPLayer для воспроизведения видео в UITableView. Видео воспроизводится правильно, но когда-то сначала, когда воспроизводится видео, идет звук, но черный экран. Видео отображается после 5-6 секунд воспроизведения видео. Я использую следующий код:AVPLayer показывает черный экран при загрузке экрана

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil]; 
playerItem = [AVPlayerItem playerItemWithAsset:asset]; 
AVPlayer *avPlayer = [AVPlayer playerWithPlayerItem:playerItem]; 
self.avPlayer = avPlayer; 

__weak CLBAVPlayer *weakSelf = self; 
[self.avPlayer addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(1.0/60.0, NSEC_PER_SEC) 
              queue:nil 
             usingBlock:^(CMTime time) { 
              [weakSelf progress]; 
             }]; 

self.layer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer]; 
self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

Пожалуйста, помогите мне разобраться с проблемой.

ответ

1

Я получил ответ для этого. На самом деле проблема заключалась в том, что когда я извлекал слой и добавлял его в качестве подуровня, он не был в главной очереди. Использование dispatch_async с главной очередью решило мою проблему.