Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Hope my code could help you guys. It's ugly. I think apple should open this kind of APIs. Of course, all NSLog() should be removed. It's just for demonstration.</p> <p>alvin</p> <pre><code>- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ // e.g. NSString *tempFilePath = [(NSURL *)[info valueForKey:UIImagePickerControllerMediaURL] absoluteString]; NSLog(@"didFinishPickingMediaWithInfo: %@",tempFilePath); // e.g. /private/var/mobile/Applications/D1E784A4-EC1A-402B-81BF-F36D3A08A332/tmp/capture/capturedvideo.MOV tempFilePath = [[tempFilePath substringFromIndex:16] retain]; NSLog(@"didFinishPickingMediaWithInfo: %@",tempFilePath); NSLog(@"===Try to save video to camera roll.==="); NSLog(@"UIVideoAtPathIsCompatibleWithSavedPhotosAlbum: %@",UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(tempFilePath)? @"YES":@"NO"); // Check if the video file can be saved to camera roll. if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(tempFilePath)){ // YES. Copy it to the camera roll. UISaveVideoAtPathToSavedPhotosAlbum(tempFilePath, self, @selector(video:didFinishSavingWithError:contextInfo:), tempFilePath); } [self dismissModalViewControllerAnimated:YES]; } - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(NSString *)contextInfo{ NSLog(@"didFinishSavingWithError--videoPath in camera roll:%@",videoPath); NSLog(@"didFinishSavingWithError--videoPath in temp directory:%@",contextInfo); // The thumbnail jpg should located in this directory. NSString *thumbnailDirectory = [[contextInfo stringByDeletingLastPathComponent] stringByDeletingLastPathComponent]; // Debug info. list all files in the directory of the video file. // e.g. /private/var/mobile/Applications/D1E784A4-EC1A-402B-81BF-F36D3A08A332/tmp/capture NSLog([contextInfo stringByDeletingLastPathComponent]); NSLog([[[NSFileManager defaultManager] contentsOfDirectoryAtPath:[contextInfo stringByDeletingLastPathComponent] error:nil] description]); // Debug info. list all files in the parent directory of the video file, i.e. the "~/tmp" directory. // e.g. /private/var/mobile/Applications/D1E784A4-EC1A-402B-81BF-F36D3A08A332/tmp NSLog(thumbnailDirectory); NSLog([[[NSFileManager defaultManager] contentsOfDirectoryAtPath:thumbnailDirectory error:nil] description]); /////////////////// // Find the thumbnail for the video just recorded. NSString *file,*latestFile; NSDate *latestDate = [NSDate distantPast]; NSDirectoryEnumerator *dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:[[contextInfo stringByDeletingLastPathComponent]stringByDeletingLastPathComponent]]; // Enumerate all files in the ~/tmp directory while (file = [dirEnum nextObject]) { // Only check files with jpg extension. if ([[file pathExtension] isEqualToString: @"jpg"]) { NSLog(@"***latestDate:%@",latestDate); NSLog(@"***file name:%@",file); NSLog(@"***NSFileSize:%@", [[dirEnum fileAttributes] valueForKey:@"NSFileSize"]); NSLog(@"***NSFileModificationDate:%@", [[dirEnum fileAttributes] valueForKey:@"NSFileModificationDate"]); // Check if current jpg file is the latest one. if ([(NSDate *)[[dirEnum fileAttributes] valueForKey:@"NSFileModificationDate"] compare:latestDate] == NSOrderedDescending){ latestDate = [[dirEnum fileAttributes] valueForKey:@"NSFileModificationDate"]; latestFile = file; NSLog(@"***latestFile changed:%@",latestFile); } } } // The thumbnail path. latestFile = [NSTemporaryDirectory() stringByAppendingPathComponent:latestFile]; NSLog(@"****** The thumbnail file should be this one:%@",latestFile); // Your code ... // Your code ... // Your code ... } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload