我正在尝试用Swift做一个AVAssetExportSession,我得到这个错误:'NSInvalidArgumentException', reason: 'Invalid output file type'。我查找了这个错误,它告诉我,对于视频,Swift只支持QuickTime文件、MP4和AppleM4V,这很奇怪,因为我正在尝试导出M4V文件。但是,我尝试导出一个MP4视频,其文件名具有MP4扩展名,并且outputFileType也是一个MP4文件,效果令人惊叹。后来我将其更改为all be M4V (包括要导出的视频为M4V文件),它给出了错误。我做错了什么吗?我的代码如下:
let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality)
let filename = "filename.m4v"
let documentsDirectory = FileManager.default.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).last!
let outputURL = documentsDirectory.appendingPathComponent(filename)
exporter?.outputURL = outputURL
exporter?.outputFileType = AVFileTypeAppleM4V
exporter?.exportAsynchronously(completionHandler: {
})感谢您的帮助,谢谢:)
发布于 2017-08-13 14:40:19
AVAssetExportPresetHighestQuality仅支持.mov文件。您必须改用AVAssetExportPresetPassthrough。
let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetPassthrough)根据Documentation的规定,AVAssetExportPresetLowQuality、AVAssetExportPresetMediumQuality和AVAssetExportPresetHighQuality仅适用于QuickTime .mov文件。
您可以通过尝试打印AVAssetExportSession的变量supportedFileTypes的内容来了解更多信息。
https://stackoverflow.com/questions/45657650
复制相似问题