视频格式、AVFoundation 和 UTI

jtb*_*des 5 iphone video file-format avfoundation

我正在创建一个可以操作视频文件的 iPhone 应用程序。我正在使用 AVFoundation 类(例如 AVAsset)。我刚刚将我的应用程序注册为符合 public.movi​​e 的所有文件的处理程序(通过 CFBundleDocumentTypes)。然而,现在我的应用程序列在.avi文件的“打开方式”菜单中,即使我不认为 iOS 可以播放 AVI 电影(快速查看预览会尝试,但会失败)。

\n\n

有没有更好的注册打开电影的方法?我还需要支持文件共享,因此我需要区分文档文件夹中的哪些文件也是有效的电影,尽管我还没有弄清楚如何检查文件的 UTI。iOS技术概述说道:

\n\n
\n

iOS 中的视频技术支持播放文件扩展名为 .mov、.mp4、.m4v 和 .3gp 的电影文件,并使用以下压缩标准:

\n\n
    \n
  • H.264 视频,高达 1.5 Mbps,640 x 480 像素,每秒 30 帧,H.264 基线配置文件的低复杂性版本,AAC-LC 音频高达 160 Kbps,48 kHz,.m4v 立体声音频, .mp4 和 .mov 文件格式
  • \n
  • H.264 视频,高达 768 Kbps、320 x 240 像素、每秒 30 帧,基线配置文件高达 1.3 级,AAC-LC 音频高达 160 Kbps、48 kHz,立体声音频格式为 .m4v、.mp4 和 . mov 文件格式
  • \n
  • MPEG-4 视频,高达 2.5 Mbps、640 x 480 像素、每秒 30 帧、Simple Profile,AAC-LC 音频高达 160 Kbps、48 kHz,立体声音频采用 .m4v、.mp4 和 .mov 文件格式
  • \n
  • 多种音频格式,包括 \xe2\x80\x9cAudio Technologies\xe2\x80\x9d 中列出的格式
  • \n
\n
\n\n

预先感谢您提供的任何提示。

\n

Fre*_*rik 5

仅对于视频,在 Info.plist 中指定以下 UTI 应该有效:

  • com.apple.m4v-视频 (.m4v)
  • com.apple.quicktime-movie(.qt、.mov)
  • 公共.mpeg-4 (.mp4)

您可以在 AVMediaFormat.h 中找到 AVFoundation 支持的 UTI: https://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVFoundation_Constants/Reference/reference.html%23//apple_ref/doc/uid /TP40009539-CH4g-DontLinkElementID_48


jtb*_*des 2

我决定处理此问题的最佳方法是使用 UT* 函数从文件扩展名获取 UTI 来确定文件的 UTI。不幸的是,这意味着 AVI 文件仍然会被导入,因为操作系统知道它们是电影,即使它们无法播放,但它似乎并没有造成太多问题。