在Mac应用程序中使用AVPlayer从文件夹中全屏播放随机视频,但当我尝试播放.vob文件或.mpg文件时,我只会看到一个持续视频持续的黑屏。
AVFoundation不支持从这些容器播放吗?我认为既然他们可以使用QuickTime Player股票,他们也可以使用AVPlayer。
答案 0 :(得分:16)
AVURLAsset class有一个静态方法,您可以查询支持的视频UTI:
+ (NSArray *)audiovisualTypes
在10.9.1上,它返回这些系统定义的UTI:
这是explanation of system UTIs。所以似乎至少应该支持.mpg容器。
According to wiki,。mpg文件可以包含MPEG-1或MPEG-2视频,但仅支持MPEG-2视频。所以也许这就是文件加载但没有显示的原因。
QuickTime内部使用QTMovieModernizer来播放旧版格式的视频(如this WWDC session中所述),所以也许你可以调查一下。它甚至还有一种确定文件是否需要现代化的方法:
+ requiresModernization:error:
答案 1 :(得分:1)
要获取支持的扩展列表,您可以使用以下函数:
right: 3em;
这将返回一个像这样的列表:
func getAllowedAVPlayerFileExtensions() -> [String] {
let avTypes = AVURLAsset.audiovisualTypes()
var avExtensions = avTypes.map({UTTypeCopyPreferredTagWithClass($0 as CFString,kUTTagClassFilenameExtension)?.takeRetainedValue() as String? ?? ""})
avExtensions = avExtensions.filter { $0.isEmpty == false }
return avExtensions
}