我有那个功能:
func retrievePixelBufferToDraw() -> CVPixelBuffer? {
let time = self.playerItem!.currentTime()
// this line is just added to make sure I can call something on self.videoOutput!
self.videoOutput!.hasNewPixelBuffer(forItemTime: time)
// raises EXC_BAD_ACCESS
let pixelBuffer = self.videoOutput!.copyPixelBuffer(forItemTime: time, itemTimeForDisplay: nil)
return pixelBuffer
}
听起来
EXC_BAD_ACCESS
来自访问已释放的变量,但是我真的不明白它在这里如何发挥作用,因为在调用失败的行之前,我已经检查了所有正在使用的变量。 最佳答案
很简单..您的AVPlayer不会同时抛出错误EXC_BAD_ACCESS
来获取视频输入,请在播放时(player.play()
)尝试为其提供QuickTimeMovie,始终需要视频输入。
最后,player
不应为nill
(没有正确的playerItem
)
关于swift - AVPlayerItemVideoOutput.copyPixelBuffer失败,显示EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38340562/