gpt4 book ai didi

objective-c - 关于捕获视频截图的问题

转载 作者:行者123 更新时间:2023-12-01 17:42:58 26 4
gpt4 key购买 nike

我想在我的 ipad 应用上截取一段视频。
我在SO上搜索,我发现了很多示例代码。我尝试了一切,但似乎没有任何效果。
我尝试了所有这些方法:

1)尝试: MPMoviePlayerController

- (void) previewWithPlayer:(NSString*)path image:(UIImageView*)imView
{
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:path]];
UIImage *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];
[player stop];
[player release];

imView.image = thumbnail;
}
2)尝试: AVAssetImageGenerator - v1
- (void) generateImage:(NSString*)path image:(UIImageView*)imView
{
AVAsset *asset = [AVAsset assetWithURL:[NSURL URLWithString:path]];
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
CMTime time = CMTimeMake(1, 1);
UIImage *thumbnail = [UIImage imageWithCGImage:[imageGenerator copyCGImageAtTime:time actualTime:NULL error:NULL]];
imView.image = thumbnail;
}
13)尝试:AVAssetImageGenerator - v2
- (void) generateImage:(NSString*)path image:(UIImageView*)imView
{
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL URLWithString:path] options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform=TRUE;
[asset release];
CMTime thumbTime = CMTimeMakeWithSeconds(2,30);

AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error){
if (result != AVAssetImageGeneratorSucceeded) {
NSLog(@"couldn't generate thumbnail, error:%@", error);
}

UIImage *thumbImg = [[UIImage imageWithCGImage:im] retain];
imView.image = thumbImg;
[generator release];
};

CGSize maxSize = CGSizeMake(320, 180);
generator.maximumSize = maxSize;
[generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:thumbTime]] completionHandler:handler];
}
但是 没什么作品。
我试过 MOV,MP4,什么都没有。
路径正确,视频正常。
NSString *fPath = [[NSBundle mainBundle] pathForResource:@"VideoA" ofType:@"mp4"];
NSLog(@"%@", fPath);
[self generateImage:fPath image:_ImgA];
可能是什么问题?我的 ImageView 什么也不显示,也没有返回错误。
iOS 是 6.0/5.1,在 iPad 模拟器/设备上。
视频为 854×480 像素,H.264,AAC。大约30Mb的大小。
请帮助我,因为我正在为这个问题发疯。
谢谢。

编辑
在设备上返回此错误:

couldn't generate thumbnail, error:Error Domain=NSURLErrorDomainCode=-1 "unknown error" UserInfo=0x1e0a2f30{NSUnderlyingError=0x1e0a3900 "The operation couldn’t be completed.(OSStatus error -12935.)", NSLocalizedDescription=unknown error}

最佳答案

解决了。
诀窍:使用 fileURLWithPath: ,而不是 URLWithString: .显然差异是非常非常重要的。

感谢诺亚。 https://stackoverflow.com/a/4201419/88461

关于objective-c - 关于捕获视频截图的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13472197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com