我面临的问题是,在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
但它似乎没有解决方案。
这个问题有什么解决办法吗?
谢谢和问候,
拉吉帕万