视频封面图像选择器来自用户动态

时间:2014-04-14 07:13:12

标签: ios iphone objective-c image video

我正在开发视频应用,因为我需要视频封面图片,我可以从用户那里选择,

从用户中选择封面图片,如下面的图片

enter image description here 我在谷歌搜索多次自定义控制器,但我没有得到任何结果,如果有任何自定义控制器?或任何建议,这对我很有帮助

1 个答案:

答案 0 :(得分:1)

您可以使用Bellow代码使用视频文件的路径获取Video Thumb封面图像,或者您可以获取视频文件的所有帧。但Apple没有提供任何视图控制器来选择封面图像Thumb for video。您必须在thumbnailImageAtTime创建手动时间或创建您自己的视图类型并使用Bellow代码获取拇指图像。希望有用。

-(void) getAllImagesFromVideo
{
   imagesArray = [[NSMutableArray alloc] initWithCapacity:375];
   times = [[NSMutableArray alloc] initWithCapacity:375];

   for (Float64 i = 0; i < 15; i += 0.033) // For 25 fps in 15 sec of Video
   {
       [times addObject:[NSValue valueWithCMTime:CMTimeMakeWithSeconds(i, 60)]];
   } 

   [imageGenerator generateCGImagesAsynchronouslyForTimes:times completionHandler:^(CMTime requestedTime, CGImageRef image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error) {
       if (result == AVAssetImageGeneratorSucceeded)
       {
           [imagesArray addObject:[UIImage imageWithCGImage:image]];
           CGImageRelease(image);
       }
   }];
}

以上代码参考来自Get all frames of Video IOS 6这里有你视频的所有帧图像。所以创建你自己的view-Controller就像你提到你的问题一样创建view-controller如上所述并将所有图像设置为水平scroll-view并为你的封面图片选择任何一个,否则你可以得到特定的图像从时间上定向使用Bellow码。

-(UIImage *)getThumbNail:(NSString*)stringPath
{
    NSURL *videoURL = [NSURL fileURLWithPath:stringPath];

    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

    UIImage *thumbnail = [player thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];

    //Player autoplays audio on init
    [player stop];

    return thumbnail;
}