AVPlayerLayer に表示されているコンテンツをぼかす方法はありますか?
コンテンツはストリーミング アセット (m3u8) であるため、AVAssetReader などのオプションはありません。
質問する
794 次
1 に答える
0
次のソリューションを使用して画像を取得してみてください:
CIImage *snaphotImage = nil;
AVPlayerItem *item = ((AVPlayerLayer*)view.layer).player.currentItem;
if (item.status == AVPlayerItemStatusReadyToPlay)
{
AVURLAsset *asset = (AVURLAsset *)item.asset;
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
CGImageRef thumb = [imageGenerator copyCGImageAtTime:((AVPlayerLayer*)view.layer).player.currentTime
actualTime:NULL
error:NULL];
snapshotImage = [CIImage imageWithCGImage:thumb];
CGImageRelease(thumb);
}
次に、ぼかしを適用します。
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"
keysAndValues:@"inputRadius", @9.0,
@"inputImage", snapshotImage, nil];
CIImage *resultImage = [filter outputImage];
UIImage *resultUIImage = [UIImage imageWithCIImage:resultImage];
于 2013-12-01T13:26:14.733 に答える