代码之家  ›  专栏  ›  技术社区  ›  Raj Pawan Gumdal

在2G/3G中使用uiImagePickerController选择视频

  •  5
  • Raj Pawan Gumdal  · 技术社区  · 14 年前

    我面临的问题是,在iPhone2G/3G设备中,我无法从相册中选择视频。默认的照片应用程序确实显示视频并能够播放它们,这意味着uiImagePickerController应该能够清楚地显示相册中的视频并选择它们。

    我对此进行了编码,以确定设备是否能够拍摄照片、录制视频、选择照片和选择视频:

     // Check if camera and video recording are available:
     [self setCameraAvailable:NO];
     [self setVideoRecordingAvailable:NO];
     [self setPhotoSelectionAvailable:NO];
     [self setVideoSelectionAvailable:NO];
    
     // For live mode:
     NSArray *availableTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
     NSLog(@"Available types for source as camera = %@", availableTypes);
     if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
     {
      if ([availableTypes containsObject:(NSString*)kUTTypeMovie])
       [self setVideoRecordingAvailable:YES];
      if ([availableTypes containsObject:(NSString*)kUTTypeImage])
       [self setCameraAvailable:YES];
     }
    
     // For photo library mode:
     availableTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
     NSLog(@"Available types for source as photo library = %@", availableTypes);
     if ([availableTypes containsObject:(NSString*)kUTTypeImage])
      [self setPhotoSelectionAvailable:YES];
     if ([availableTypes containsObject:(NSString*)kUTTypeMovie])
      [self setVideoSelectionAvailable:YES];
    

    生成的3G设备日志如下:

    2010-05-03 19:09:09.623 xyz [348:207] Available types for source as camera = (
        "public.image"
    )
    2010-05-03 19:09:09.643 xyz [348:207] Available types for source as photo library = (
        "public.image"
    )
    

    作为日志状态,对于照片库,等效于kuttypemovie的字符串不可用,因此uiImagePickerController不会在照片库中显示电影文件(或者更确切地说,如果我们设置了包含kuttypemovie的源类型数组,则抛出异常)。

    我还没有测试3GS,但是我确信这个问题在它中不存在,因为它涉及到其他线程。

    我已经为3.0(基本SDK)和3.1构建了应用程序,但结果相同。

    这个问题已经在线程中讨论过了: http://www.iphonedevsdk.com/forum/iphone-sdk-development/36197-uiimagepickercontroller-does-not-show-movies-albums.html

    但它似乎没有解决方案。

    这个问题有什么解决办法吗?

    谢谢和问候, 拉吉帕万

    3 回复  |  直到 14 年前
        1
  •  5
  •   Rafael Nobre    14 年前

    由于视频在被采集后总是被压缩(原始视频记录器文件非常大),并且2G/3G型号无法对H.264进行硬件编码/解码,因此它们将其从uiImagePickerController API中删除。这很不幸,因为我们都希望在这些设备上选择视频。

        2
  •  3
  •   bealex    14 年前

    默认的照片应用程序确实显示视频,并且能够播放它们

    但是你是怎么测试的呢?2G/3G无法录制视频。所以不能将视频文件放置到图像选取器。还是我错了?

    文档明确指出:“由于媒体源可能不存在或不可用,设备可能不总是支持所有源类型。”因此iPhone OS假定不存在任何电影,并且不允许选择它们。我认为是这样。

        3
  •  0
  •   Arpan    14 年前

    在3GS上,它工作得非常好,事情是3GS已经在SDK3.1之后推出了,所以3.0没有任何与视频相关的处理方法。