AVPlayer問題記録
1052 ワード
1,スクリーンショットの問題:copyPixelBufferForItemTimeによるスクリーンショットの失敗処理:
Player再生前にAVPlayerItemVideoOutputを初期化して追加する必要があります
スクリーンショットコード
Player再生前にAVPlayerItemVideoOutputを初期化して追加する必要があります
スクリーンショットコード
CMTime itemTime = self.player.currentItem.currentTime;
// AVPlayerItemVideoOutput Buffer
CVPixelBufferRef pixelBuffer = [self.videoOutPut copyPixelBufferForItemTime:itemTime itemTimeForDisplay:nil];
CIImage *ciImage = [CIImage imageWithCVPixelBuffer:pixelBuffer];
CIContext *temporaryContext = [CIContext contextWithOptions:nil];
CGImageRef videoImage = [temporaryContext
createCGImage:ciImage
fromRect:CGRectMake(0, 0,
CVPixelBufferGetWidth(pixelBuffer),
CVPixelBufferGetHeight(pixelBuffer))];
//
UIImage *currentImage = [UIImage imageWithCGImage:videoImage];
if (!currentImage) {
// show msg
return;
}
CGImageRelease(videoImage);
//
[self saveImage:currentImage];