Очень смущен тем, как экспортировать файл MOV. Продолжайте получать ошибку "Ошибка Domain = AvFoundationErrordOmain Code = -11838" Остановленная операция ". Сначала я начал с Avassets, но это в итоге доставило мне и некоторые другие Devs проблемы при экспорте. Так что я в итоге пошел по пути использования Avmutablecomposition, но это не сработало для меня.func exportVideo(_ url: URL) async throws -> URL?{
let fileManager = FileManager.default
let item = AVPlayerItem(url: url)
guard try await item.asset.load(.isExportable) else { return nil }
let videoComp = item.videoComposition
guard let exporter = AVAssetExportSession(asset: item.asset, presetName: AVAssetExportPresetHighestQuality),
exporter.supportedFileTypes.contains(AVFileType.mov) else {
return nil
}
// The location in which we will store the video
guard let outputURL = fileManager.containerURL(
forSecurityApplicationGroupIdentifier: "group.example"
)?.appendingPathComponent(currentOutfit + ".mov") else { return nil }
// Check whether the file exists in cache
guard !fileManager.fileExists(atPath: outputURL.path()) else {
return outputURL
}
// Assign the location in where to save the video
exporter.outputURL = outputURL
// export video to mov
exporter.outputFileType = AVFileType.mov
exporter.shouldOptimizeForNetworkUse = true
exporter.videoComposition = videoComp
do {
if #available(iOS 18, *) {
try await exporter.export(to: outputURL, as: AVFileType.mov)
} else {
exporter.exportAsynchronously(completionHandler: {
print("export Status: \(String(describing: exporter.status))")
print("export Error: \(String(describing: exporter.error))")
})
}
// return the newly saved video url location
return outputURL
} catch {
print("export error: \(error)")
}
return nil
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ortsession
IOS: не может экспортировать движения с помощью avassetexportsession ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение