Я пытаюсь экспортировать повернутое видео с помощью AVAssetExportSession и хочу приостановить и возобновить AVAssetExportSession при нажатии кнопки.
var exportSession = AVAssetExportSession.init(asset: composition, presetName: AVAssetExportPresetHighestQuality)
exportSession?.videoComposition = videoComposition
exportSession?.outputFileType = AVFileType.mov
exportSession?.outputURL = URL.init(fileURLWithPath: videoPath)
exportSession?.videoComposition = videoComposition
var exportProgress: Float = 0
let queue = DispatchQueue(label: "Export Progress Queue")
queue.async(execute: {() -> Void in
while exportSession != nil {
exportProgress = (exportSession?.progress)!
print("current progress == \(exportProgress)")
}
sleep(1)
}
})
exportSession?.exportAsynchronously(completionHandler: {
if exportSession?.status == AVAssetExportSessionStatus.failed {
print("Failed \(exportSession?.error?.localizedDescription)")
exportSession = nil
} else if exportSession?.status == AVAssetExportSessionStatus.completed {
exportSession = nil
VideoSave.saveVideoToPhotoLibrary(URL.init(fileURLWithPath: videoPath), error: nil)
}
})
Предположим, что видео, прогресс экспорта которого завершен на 50%.Поэтому я приостановил процесс экспорта на 50%, а затем возобновил его снова.Это должно возобновиться с 50%, где это было приостановлено прежде.