我遇到了一个问题,我无法从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构建了应用程序,但结果相同。
但它似乎没有提供解决方案。
这个问题的任何解决方案?
谢谢和问候, Raj Pawan
答案 0 :(得分:5)
由于视频在被挑选后总是被压缩(原始视频录像机文件非常大),并且2G / 3G型号无法对硬件进行编码/解码h.264,因此他们将其从UIImagePickerController API中删除。这很不幸,因为我们都喜欢在这些设备上挑选视频。
答案 1 :(得分:3)
默认照片应用程序确实显示视频并且能够播放
但你怎么测试这个? 2G / 3G无法录制视频。因此,您无法将视频文件放置到图像选择器中。或者我错了吗?
文档明确指出:“由于媒体源可能不存在或可能不可用,因此设备可能并不总是支持所有源类型。”所以iPhone OS假设没有任何电影,也不允许选择它们。我想是的。
答案 2 :(得分:0)
ON 3GS它的工作非常精细,而事实是3Gs已经在SDK 3.1之后滚动所以3.0没有任何处理视频相关的东西..!