0

ビデオから(最初のフレームの)サムネイルを取得して、表示できるようにしようとしています。誰かがこれを行うことに成功しましたか?もしそうなら、あなたはそれをどのように行いますか?

4

2 に答える 2

1

最初に AssetImageGenerator を使用する方法はいくつかあります:-

- (UIImage *)imageFromVideoURL 
{
// result 
UIImage *image = nil;

// AVAssetImageGenerator
AVAsset *asset = [[AVURLAsset alloc] initWithURL:appDelegate.videoURL options:nil];; 
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
imageGenerator.appliesPreferredTrackTransform = YES;

// calc midpoint time of video
Float64 durationSeconds = CMTimeGetSeconds([asset duration]);
CMTime midpoint = CMTimeMakeWithSeconds(durationSeconds/2.0, 600); 

// get the image from 
NSError *error = nil; 
CMTime actualTime;
CGImageRef halfWayImage = [imageGenerator copyCGImageAtTime:midpoint actualTime:&actualTime error:&error];

if (halfWayImage != NULL) 
{
    // cgimage to uiimage
    image = [[UIImage alloc] initWithCGImage:halfWayImage];
    [dic setValue:image forKey:kImage];
    NSLog(@"Values of dictonary==>%@", dic);
    NSLog(@"Videos Are:%@",appDelegate.videoURLArray);
    CGImageRelease(halfWayImage);
}
return image;
}

これは、別の方法が MPMoviePlayerController を使用している最良の方法です:-

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
UIImage *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];
[player stop];

それはあなたのおかげで役立つかもしれません:)

于 2012-05-25T09:55:18.930 に答える
0

まず、ビデオの videoURL または nsdata が必要です。ここで MediaPlayer フレームワークを追加し、#import MediaPlayer/MPMoviePlayerController.h を追加します。ビデオのサムネイルが必要な場所にこれを追加します

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
UIImage *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];
//Player autoplays audio on init
[player stop];
[player release];
于 2012-05-25T09:19:20.967 に答える