ios – 确定图像选择器媒体类型是否为视频

ios – 确定图像选择器媒体类型是否为视频,第1张

概述我已经看到了各种方法来检查-imagePickerController:didFinishPickingMediaWithInfo:中返回的媒体类型是否是视频.例如,我的方式: - (void)imagePickerController:(UIImagePickerController *)imagePickerdidFinishPickingMediaWithInfo:(NSDictionar 我已经看到了各种方法来检查-imagePickerController:dIDFinishPickingMediawithInfo:中返回的媒体类型是否是视频.例如,我的方式:
- (voID)imagePickerController:(UIImagePickerController *)imagePickerdIDFinishPickingMediawithInfo:(NSDictionary *)info{    if (UTTypeEqual(kUTTypeMovIE,(__brIDge CFStringRef)[info objectForKey:UIImagePickerControllerMediaType]))     {        // ...    }}

要么

Nsstring *mediaType = [info objectForKey:UIImagePickerControllerMediaType];if ([mediaType isEqualToString:(Nsstring *)kUTTypeMovIE]) {

要么

if ([mediaType isEqualToString:(Nsstring *)kUTTypeVIDeo] ||     [mediaType isEqualToString:(Nsstring *)kUTTypeMovIE])

要么

if (CFStringCompare ((__brIDge CFStringRef) mediaType,kUTTypeMovIE,0)        == kcfCompareEqualTo)

要么

if ([mediaType isEqualToString:@"public.movIE"]

每个人似乎都有不同的做法.检查介质类型的推荐方法是什么?优选地,包括“所有图像类型”或“所有视频类型”的方式.

@H_404_23@解决方法 最好检查一下与特定UTI的一致性.

现在,iOS告诉你它是一个public.movi​​e,但它明年会说些什么呢?你会看到有人检查public.vIDeo.太棒了,所以你硬编码了两种而不是一种.

但问“这是一部电影吗?”不是更好吗?而不是硬编码您认为iOS将返回的特定类型?有办法做到这一点:

Nsstring *mediaType = info[UIImagePickerControllerMediaType];BOol isMovIE = UTTypeConformsTo((__brIDge CFStringRef)mediaType,kUTTypeMovIE) != 0;

如果mediaType表示电影,则使用此方法,如果返回电影(无论返回哪种特定类型),isMovIE应为YES,因为所有电影都符合kUTTypeMovIE.要非常清楚,如果它是kUTTypeVIDeo,它也会将其识别为电影,因为kUTTypeVIDeo符合kUTTypeMovIE.

同样,您可以检查返回的内容是否为图像:

Nsstring *mediaType = info[UIImagePickerControllerMediaType];BOol isImage = UTTypeConformsTo((__brIDge CFStringRef)mediaType,kUTTypeImage) != 0;

如果返回图像,则isIamge应为YES,因为所有图像都符合kUTTypeImage.

在这里查看Apple的(部分)类型树:Uniform Type Identifiers Are Declared in a Conformance Hierarchy.您可以获得一个不太有用但更完整的列表,列出系统当前识别的所有UTI以及它们与shell的一致性:

/System/library/Frameworks/CoreServices.framework/Frameworks\/LaunchServices.framework/Versions/A/Support/lsregister -dump

特别是,您可以看到public.vIDeo的定义如下:

--------------------------------------------------------type    ID:            8344    uti:           public.vIDeo    description:   vIDeo    flags:         exported  active  core  apple-internal  trusted      icon:              conforms to:   public.movIE    Tags:          --------------------------------------------------------

请注意,如果类型相同,则UTTypeConformsTo返回true.来自Apple的文档:

Returns true if the uniform type IDentifIEr is equal to or conforms to the second type.

总结

以上是内存溢出为你收集整理的ios – 确定图像选择器媒体类型是否为视频全部内容,希望文章能够帮你解决ios – 确定图像选择器媒体类型是否为视频所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1100833.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存