使用信号量(dispatch_semaphore)等待 AVAssetExportSession 异步执行完成,避免阻塞主线程。
示例代码:
// 定义信号量 let semaphore = DispatchSemaphore(value: 0)
// 创建 AVAssetExportSession let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetPassthrough) exporter?.outputURL = outputURL exporter?.outputFileType = AVFileType.mp4
// 异步执行 AVAssetExportSession exporter?.exportAsynchronously(completionHandler: { // 完成时发送信号量 semaphore.signal() })
// 等待信号量,避免阻塞主线程 semaphore.wait()
上一篇:AVAssetExportSession的exportAsynchronously方法非常缓慢。
下一篇:AVAssetExportSession给我返回了AVFoundationErrorDomain Code=-11800错误。