2016-07-12 30 views
0

我有該功能:AVPlayerItemVideoOutput.copyPixelBuffer失敗EXC_BAD_ACCESS

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來自訪問重新分配的變量,但我實在不明白那怎麼會來這裏發揮作用,因爲我」在調用失敗的行之前,我已經檢查了所有使用的變量。

回答

1

簡單..你AVPlayer沒有得到在同一時間視頻輸入它引發錯誤EXC_BAD_ACCESS儘量給它QuickTimeMovie當你player.play())總是需要視頻輸入。

在結束player不應nill(無適當playerItem