屏幕加载时AVPLayer显示黑屏

Posted

技术标签:

【中文标题】屏幕加载时AVPLayer显示黑屏【英文标题】:AVPLayer show black screen when screen load 【发布时间】:2016-03-11 09:24:04 【问题描述】:

我正在使用 AVPLayer 在 UITableView 中播放视频。视频播放正常,但有时最初播放视频时,有声音,但屏幕为黑色。视频播放 5-6 秒后可见。我正在使用以下代码:

 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 解决了我的问题。

【讨论】:

以上是关于屏幕加载时AVPLayer显示黑屏的主要内容,如果未能解决你的问题,请参考以下文章

Avplayer有时会显示黑屏但声音很好

使用 AVPlayer 的黑屏(在模拟器和设备中)

第七次重新进入屏幕后,AVPlayer 未准备好显示

AVPlayer 层不显示视频内容

iOS AVPlayer:屏幕锁定时暂停视频

当视频从所有屏幕完成时自动关闭 AVPlayer