从视频网址创建缩略图图像!
问题描述:
我尝试从视频网址创建缩略图图像。 我使用AV Foundation编程指南。 我的项目有一个按钮和一个imageview。按下按钮后,缩略图图像将在uiimageview上加载。 我的代码不能正常工作,它是:从视频网址创建缩略图图像!
- (IBAction) btnClick : (id)sender
{
NSURL *url = [NSURL URLWithString:@"http://www.youtube.com/watch?v=bgN62D70VLk"];
AVURLAsset *myAsset = [[AVURLAsset alloc] initWithURL:url options:nil];
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:myAsset];
Float64 durationSeconds = CMTimeGetSeconds([myAsset duration]);
CMTime midpoint = CMTimeMakeWithSeconds(durationSeconds/2.0, 600);
NSError *error = nil;
CMTime actualTime;
CGImageRef halfWayImage = [imageGenerator copyCGImageAtTime:midpoint actualTime:&actualTime error:&error];
if (halfWayImage != NULL) {
NSString *actualTimeString = (NSString *)CMTimeCopyDescription(NULL, actualTime);
NSString *requestedTimeString = (NSString *)CMTimeCopyDescription(NULL, midpoint);
NSLog(@"got halfWayImage: Asked for %@, got %@", requestedTimeString, actualTimeString);
[actualTimeString release];
[requestedTimeString release];
// Do something interesting with the image.
CGImageRelease(halfWayImage);
}
UIImage *image = [UIImage imageWithCGImage:halfWayImage];
[imageView setImage:image];
[imageGenerator release];
}
帮助我这个问题,拜托了! 谢谢!
答
MPMoviePlayerController
有一些方法来处理这个问题 -
thumbnailImageAtTime:timeOption:
requestThumbnailImagesAtTimes: timeOption:
cancelAllThumbnailImageRequests:
答
我看到你的代码的一些问题:
- http://www.youtube.com/watch?v=bgN62D70VLk是一个网页的URL,但AVAssets必须是视频或音频文件。注意:YouTube不会公布其视频文件的网址。
- 您对[myAsset持续时间]的呼叫将被阻止。您应该改用AVAsynchronousKeyValueLoading协议(请参阅loadValuesAsynchronouslyForKeys)。
- 您在释放它之后正在使用halfwayImage。
我会推荐观看WWDC 2010的AVFoundation会议,并查看会话示例代码。