这个问题也有同样的情况,但是解决方案都没有起作用。
AVPlayer
有时会播放空白视频:有声音但没有画面。
当播放空白视频时,我们打印了播放器的帧和状态。帧是非零且正确设置的。状态也是readyToPlay
。play
函数也在主线程上调用。
换句话说,播放器图层的帧是有效的,并且播放器也准备好播放。然而,即使有声音,也没有视频出现。
问题似乎是一个时间问题。如果我们在播放视频之前等待5-10秒,视频每次都可以正常工作。
此问题出现在iOS 10上,而不是iOS 8或9。
苹果论坛上的这个帖子表明这可能是与AVVideoCompositionCoreAnimationTool
相关的错误,我们也在使用它。
有什么解决方案吗?
在iPhone 7设备上比iPhone 5s设备上更容易发生此问题。
代码:
fileprivate func playVideo(_ videoURL: String, prompt: String) {
// Show <playerView>
playerView.isHidden = false
// Use new video in player
playerItem = AVPlayerItem(url: URL(fileURLWithPath: videoURL))
print("STATUS: \(player.status == AVPlayerStatus.readyToPlay). FRAME: \(playerLayer.frame). MAIN THREAD: \(Thread.isMainThread)")
player.replaceCurrentItem(with: playerItem)
// Start playing video
player.seek(to: kCMTimeZero)
player.actionAtItemEnd = .none
player.play()
}