【发布时间】:2010-05-03 13:45:20
【问题描述】:
我遇到了一个问题,我无法从 iPhone 2G/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
但它似乎没有解决方案。
有解决这个问题的办法吗?
感谢和问候, 拉吉帕万
【问题讨论】:
标签: iphone cocoa-touch uiimagepickercontroller