gpt4 book ai didi

ios - AVAssetExportSession 卡住(未启动)导出

转载 作者:行者123 更新时间:2023-11-28 21:40:19 27 4
gpt4 key购买 nike

我尝试从照片库中导出视频,但从未执行导出回调。我定期查看导出的进度,进度一直为零。

下面的代码在 99.9% 的情况下都有效,但有时在某些设备上(绝对随机)它会停止工作,只有重启 iPhone 才有帮助。

AVAssetExportSession.Status 始终处于等待状态


class FilesInteractor {
static func tempDirectoryPath() -> String {
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString
return documentsPath.appendingPathComponent("temp") as String
}

static func createTempDirectory() {
if !FileManager.default.fileExists(atPath: tempDirectoryPath()) {
try? FileManager.default.createDirectory(atPath: tempDirectoryPath(), withIntermediateDirectories: true, attributes: nil)
}
}

static func testVideoURL(name: String, ext: String = "mov") -> URL {
createTempDirectory()
let outputURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("test").appendingPathComponent("\(name).\(ext)", isDirectory: false)

log.debug("Test video URL: \(outputURL)")

return outputURL
}
}

import AVFoundation

let asset = AVAsset()
let outputURL = FilesInteractor.testVideoURL("output")

let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPreset1280x720)
exportSession?.outputFileType = .mov
exportSession?.outputURL = outputURL

try? FileManager.default.removeItem(at: outputURL)
exportSession?.exportAsynchronously(completionHandler: {
print("sometimes never calls")
})

其他视频应用程序也卡住(Filto、Videoleap):

Filto

Videoleap

最佳答案

我在一些 Github 项目中多次看到这个问题,通常它与 URL 的创建方式有关。不确定您在问题中输入的代码是否只是一些占位符,但我认为您应该创建一个这样的文件 URL 而不是“字符串”。

var tempFileUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("temp_video_data.mp4", isDirectory: false)
tempFileUrl = URL(fileURLWithPath: tempFileUrl.path)
exportSession.outputURL = tempFileUrl

也许这会解决问题?

关于ios - AVAssetExportSession 卡住(未启动)导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58912668/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com