[HTML]
View plaincopy
- [Mimagegenerator generatecgimagesasynchronouslyfortimes: [nsarray arraywithobject: [nsvalue valuewithcmtime: cmtimemakewithseconds (time, nsec_per_sec)] completionhandler:
- ^ (Cmtime requestedtime, cgimageref image, cmtime actualtime, avassetimagegeneratorresult result, nserror * error)
- {
- Nslog (@ "actual got image at time: % F", cmtimegetseconds (actualtime ));
- If (image)
- {
- [Catransaction begin];
- [Catransaction setdisableactions: Yes];
- [Layer setcontents :( ID) image];
- // Uiimage * IMG = [uiimage imagewithcgimage: Image];
- // Uiimagewritetosavedphotosalbum (IMG, self, nil, nil );
- [Catransaction commit];
- }
- }];
How to obtain the first frame
Avfoundationframework
Coremediaframework
[HTML]
View plaincopy
- + (Uiimage *) thumbnailimageforvideo :( nsurl *) videourl attime :( nstimeinterval) time {
- Avurlasset * asset = [[avurlasset alloc] initwithurl: videourl options: Nil] autorelease];
- Nsparameterassert (asset );
- Avassetimagegenerator * assetimagegenerator = [[avassetimagegenerator alloc] initwithasset: asset] autorelease];
- Assetimagegenerator. appliespreferredtracktransform = yes;
- Assetimagegenerator. aperturemode = avassetimagegeneratoraperturemodeencodedpixels;
- Cgimageref thumbnailimageref = NULL;
- Cftimeinterval thumbnailimagetime = time;
- Nserror * thumbnailimagegenerationerror = nil;
- Thumbnailimageref = [assetimagegenerator copycgimageattime: cmtimemake (thumbnailimagetime, 60) actualtime: NULL error: & thumbnailimagegenerationerror];
- If (! Thumbnailimageref)
- Nslog (@ "thumbnailimagegenerationerror % @", thumbnailimagegenerationerror );
- Uiimage * thumbnailimage = thumbnailimageref? [[Uiimage alloc] initwithcgimage: thumbnailimageref] autorelease]: NIL;
- Return thumbnailimage;