从uiimagepickercontroller选择视频文件的应用程序崩溃
问题描述:
在我的应用程序中,我想通过使用UIImagePickerController从库中选择视频。但是当我选择超过5分钟持续时间的视频时,我的应用程序崩溃在iPod上。我如何限制用户选择持续时间超过5分钟的视频。请给我解决这个错误。谢谢。从uiimagepickercontroller选择视频文件的应用程序崩溃
答
试试这个:
NSURL * aUrlMovie = [[info valueForKey:UIImagePickerControllerMediaURL] retain];/ AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:aURLPath]; CMTime duration = playerItem.duration; float seconds = CMTimeGetSeconds(duration);
然后为你想的秒数添加验证..
答
#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
尝试更新代码 –
答
试试这个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];
}
}
请给一些代码。什么错误来了? –