2012-06-15 53 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]; 
    } 

}

相關問題