ios - 如何将视频从 AVAssetExportSession 保存到相机胶卷?

标签 ios swift

我有一些代码可以编辑视频,然后创建一个 AVAssetExportSession 将编辑后的视频保存在某个地方。我想将它保存到相机胶卷,但无法弄清楚它的 NSURL 是什么。

var session: AVAssetExportSession = AVAssetExportSession(asset: myasset, presetName: AVAssetExportPresetHighestQuality)
session.outputURL = ???
session.exportAsynchronouslyWithCompletionHandler(nil)

有谁知道如何确定将视频保存到相机胶卷的正确 NSURL?预先感谢您的帮助。

最佳答案

您不能仅通过使用 session.outputURL = ... 将视频直接保存到相机胶卷。您必须将视频保存到文件路径(临时或其他),然后使用 writeVideoAtPathToSavedPhotosAlbum: 将该 url 处的视频写入相机胶卷,例如:

var exportPath: NSString = NSTemporaryDirectory().stringByAppendingFormat("/video.mov")
var exportUrl: NSURL = NSURL.fileURLWithPath(exportPath)!

var exporter = AVAssetExportSession(asset: myasset, presetName: AVAssetExportPresetHighestQuality)
exporter.outputURL = exportUrl

exporter.exportAsynchronouslyWithCompletionHandler({
    let library = ALAssetsLibrary()
    library.writeVideoAtPathToSavedPhotosAlbum(exportURL, completionBlock: { (assetURL:NSURL!, error:NSError?) -> Void in
        // ...
    })
})

关于ios - 如何将视频从 AVAssetExportSession 保存到相机胶卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28977049/

相关文章:

ios - Pod 安装在 React-native mac os catalina 10.15 中不起作用

ios - 在私有(private)队列上运行任务并返回回调

ios - 从另一个类更新 UILabel

svg - 调整 PaintCode 生成的路径大小

ios - SceneKit IOS 的平滑捏合手势

iphone - 可以在我的应用程序中将多个类的默认值注册到 NSUserDefaults 吗?

ios - 在 iOS 中将 CIFilter 应用于视频

ios - UIAnimator 的 UISnapBehavior 可以与 UIScrollview 一起使用吗?

swift - 如何缩短这个开关盒?

ios - 第二个主从方案在 SplitViewController 中无法正确加载