shuai1234 发表于 2013-1-28 18:02:10

【iPhone】UIImagePickerController 查看图片,视频,录像

 

UIImagePickerController
 
-- the only sanctioned way to get videos/movies or images/pictures on supported devices
 
<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
 
 
用UIImagePickerController选择、显示图片或视频,主要注意UIImagePickerController几个属性的设置
 
一:UI 显示样式,显示的格式确定
1:sourceType
 
@property(nonatomic) UIImagePickerControllerSourceType sourceType
 
enum {
UIImagePickerControllerSourceTypePhotoLibrary,
UIImagePickerControllerSourceTypeCamera,
UIImagePickerControllerSourceTypeSavedPhotosAlbum
};
typedef NSUInteger UIImagePickerControllerSourceType;
 
sourceType用来确定用户界面显示的样式:
共三种格式(模拟器上的效果图)
UIImagePickerControllerSourceTypePhotoLibrary,
UIImagePickerControllerSourceTypeCamera,
 
 
UIImagePickerControllerSourceTypeSavedPhotosAlbum
 
 
 
为了区分是否支持视频格式,一般要用到下面这个函数,以便确定mediaTypes。
+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType
 
 
2:   mediaTypes
 
@property(nonatomic,copy) NSArray *mediaTypes
 
mediaTypes用来确定再picker里显示那些类型的多媒体文件,图片?视频?
+ (NSArray *)availableMediaTypesForSourceType:(UIImagePickerControllerSourceType)sourceType
 
二:选取动作处理
UIImagePickerControllerDelegate 
通过代理来完成用户在选中图片,或者choose视频时的处理方式:
 
共有三个可选的代理方法
– imagePickerController:didFinishPickingMediaWithInfo:  
– imagePickerControllerDidCancel:  
– imagePickerController:didFinishPickingImage:editingInfo:   Deprecated in iPhone OS 3.0
 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
info中包括选取的照片,视频的主要信息
NSString *const UIImagePickerControllerMediaType;         选取的类型 public.image  public.movie
NSString *const UIImagePickerControllerOriginalImage;    修改前的UIImage object.
NSString *const UIImagePickerControllerEditedImage;      修改后的UIImage object.
NSString *const UIImagePickerControllerCropRect;           原始图片的尺寸NSValue object containing a CGRect data type
NSString *const UIImagePickerControllerMediaURL;          视频在文件系统中 的 NSURL地址
 
 
保存视频主要时通过获取其NSURL 然后转换成NSData
 
实例代码如下:
 
- (void) pickImage: (id) sender
{
 UIImagePickerController *ipc = [ init];
        if (){
        ipc.sourceType =  UIImagePickerControllerSourceTypePhotoLibrary;
         ipc.mediaTypes =;   
        } 
 ipc.delegate = self;
 ipc.allowsImageEditing = NO;
 ; 
}
 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
 
 NSString *mediaType = ;
 if (){
  // UIImage *selectedImage = ;
   UIImage *image = ;
      NSLog(@"found an image");
    atomically:YES];
      SETIMAGE(image);
  CFShow([ directoryContentsAtPath:]);
 }
 else if (){
 
  NSURL *videoURL = ;
  NSLog(@"found a video");
        NSData *webData = ;
  //NSData *video = [ initWithContentsOfURL:videoURL];
   atomically:YES];
   CFShow([ directoryContentsAtPath:]);
 
    // NSLog(videoURL);
 
 }
 ;
}
页: [1]
查看完整版本: 【iPhone】UIImagePickerController 查看图片,视频,录像