2012-06-15 54 views
0

在我的应用程序中,我想通过使用UIImagePickerController从库中选择视频。但是当我选择超过5分钟持续时间的视频时,我的应用程序崩溃在iPod上。我如何限制用户选择持续时间超过5分钟的视频。请给我解决这个错误。谢谢。从uiimagepickercontroller选择视频文件的应用程序崩溃

+0

请给一些代码。什么错误来了? –

回答

1

试试这个:

 
NSURL * aUrlMovie = [[info valueForKey:UIImagePickerControllerMediaURL] retain];/ 
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:aURLPath]; 
CMTime duration = playerItem.duration; 
float seconds = CMTimeGetSeconds(duration); 

然后为你想的秒数添加验证..

+0

感谢您的快速回复,我想阻止用户在他/她按下选择按钮之前选择视频。这是可能的。 – Victor

+0

是@Victor,它是可能的.....把上面的代码放在一个方法中,并用返回类型BOOL ...调用此方法...如果秒> = 300秒..在ImagePickerDidFinsihPickingMediaWithInfo:方法中标记消息。 – Meet

+0

检查下面的答案由Safecase – Meet

1
#pragma mark UIImagePickerController delegate 

    - (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info 
    { 
NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 
if ([mediaType isEqualToString:(NSString*)kUTTypeMovie]) { 
    self.mediaURL = [info objectForKey:UIImagePickerControllerMediaURL]; 
    if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(mediaPath)) { 
     UISaveVideoAtPathToSavedPhotosAlbum(mediaPath, 
              self, 
              @selector(video:didFinishSavingWithError:contextInfo:), 
              NULL); 
    } 
} 
[self dismissModalViewControllerAnimated:YES]; 
} 
+0

它不工作。 – Victor

+0

尝试更新代码 –

1

试试这个picker.videoMaximumDuration = 5;

而且这样的事情:

#import <AVFoundation/AVFoundation.h> 
#import <AVFoundation/AVAsset.h> 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    NSURL *selectedVideoUrl = [info objectForKey:UIImagePickerControllerMediaURL]; 

    AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:selectedVideoUrl]; 

    CMTime duration = playerItem.duration; 
    float seconds = CMTimeGetSeconds(duration); 
    //NSLog(@"duration: %.2f", seconds); 
    if(seconds > 300) 
    { 
    [picker popViewControllerAnimated:YES]; 
    } 
    else{ 
    [picker dismissModalViewControllerAnimated:YES]; 
    } 

}

相关问题