AVAssetExportSession 现状设置
AVAssetExportSession status kvo set up
我正在使用 AVAssetExportSession。我不确定为什么结果没有显示视频,所以我想观察 AVAssetExportSession 的状态。这是我第一次做KVO。
它提到 AVAssetExportSession.Status 是可观察的。我设置为
guard let export = AVAssetExportSession(
asset: composition,
presetName: AVAssetExportPresetHighestQuality)
else {
print("Cannot create export session.")
fatalError()
}
export.observe(\AVAssetExportSession.status, options: .new) {
export, change in
print("export.status : \(export.status)")
}
我执行了导出会话,当我检查异步块中的状态时,它显示已完成。我想查看状态从开始到完成的进度,所以我删除了这段打印状态的代码。
export.videoComposition = videoComposition
export.outputFileType = .mov
export.outputURL = exportURL
export.exportAsynchronously {
DispatchQueue.main.async {
}
}
我在 kvo 块中设置了断点,但它似乎没有任何作用。
您需要保留对它的引用
var keyVO:NSKeyValueObservation!
func viewDidLoad() {
super.viewDidLoad()
keyVO = export.observe(\AVAssetExportSession.status, options: .new) { export, change in
print("export.status : \(export.status)")
}
}
我正在使用 AVAssetExportSession。我不确定为什么结果没有显示视频,所以我想观察 AVAssetExportSession 的状态。这是我第一次做KVO。
它提到 AVAssetExportSession.Status 是可观察的。我设置为
guard let export = AVAssetExportSession(
asset: composition,
presetName: AVAssetExportPresetHighestQuality)
else {
print("Cannot create export session.")
fatalError()
}
export.observe(\AVAssetExportSession.status, options: .new) {
export, change in
print("export.status : \(export.status)")
}
我执行了导出会话,当我检查异步块中的状态时,它显示已完成。我想查看状态从开始到完成的进度,所以我删除了这段打印状态的代码。
export.videoComposition = videoComposition
export.outputFileType = .mov
export.outputURL = exportURL
export.exportAsynchronously {
DispatchQueue.main.async {
}
}
我在 kvo 块中设置了断点,但它似乎没有任何作用。
您需要保留对它的引用
var keyVO:NSKeyValueObservation!
func viewDidLoad() {
super.viewDidLoad()
keyVO = export.observe(\AVAssetExportSession.status, options: .new) { export, change in
print("export.status : \(export.status)")
}
}