0

私のアプリケーションでは、UIImagePickerControllerを使用してライブラリからビデオを選択したいと思います。しかし、5分以上の長さのビデオを選択すると、アプリケーションがiPodでクラッシュします。5分を超える長さのビデオを選択するようにユーザーを制限するにはどうすればよいですか。このバグの解決策を教えてください。ありがとうございました。

4

3 に答える 3

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];
  }

}

于 2012-06-15T08:58:22.377 に答える
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];
}
于 2012-06-15T08:48:59.293 に答える
1

これを試して:

NSURL * aUrlMovie = [[情報 valueForKey:UIImagePickerControllerMediaURL] 保持];/
 AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:aURLPath];
CMTime duration = playerItem.duration;
float 秒 = CMTimeGetSeconds(duration);

次に、希望する秒数の検証を追加します..

于 2012-06-15T06:38:54.090 に答える