Video 如何将此代码转换为Swift以保存视频?
我有以下代码来保存视频:Video 如何将此代码转换为Swift以保存视频?,video,swift,avfoundation,ios8,Video,Swift,Avfoundation,Ios8,我有以下代码来保存视频: (void)saveRecordedFile:(NSURL *)recordedFile { [SVProgressHUD showWithStatus:@"Saving..." maskType:SVProgressHUDMaskTypeGradient]; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(void)saveRecordedFile:(NSURL *)recordedFile {
[SVProgressHUD showWithStatus:@"Saving..."
maskType:SVProgressHUDMaskTypeGradient];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
[assetLibrary writeVideoAtPathToSavedPhotosAlbum:recordedFile
completionBlock:
^(NSURL *assetURL, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
[SVProgressHUD dismiss];
NSString *title;
NSString *message;
if (error != nil) {
title = @"Failed to save video";
message = [error localizedDescription];
}
else {
title = @"Saved!";
message = nil;
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
message:message
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
});
}];
});
}
我想转换成swift,但我不知道如何更改这行:
ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
[assetLibrary writeVideoAtPathToSavedPhotosAlbum:recordedFile
completionBlock:
^(NSURL *assetURL, NSError *error)
如何将completionBlock^(NSURL*assetURL,NSError*error)
转换为swift?我用以下方法解决了它:
typealias ALAssetsLibraryWriteVideoCompletionBlock = (NSURL!, NSError!) -> Void
var complete : ALAssetsLibraryWriteVideoCompletionBlock = {reason in println(reason)}
library.writeVideoAtPathToSavedPhotosAlbum( fileUrl, complete)
谢谢 你可以这样写:
assetLibrary.writeVideoAtPathToSavedPhotosAlbum(outputURL, completionBlock: {(url: NSURL!, error: NSError!) in
println("URL %@",url);
if error != nil{
}
})
看看我的答案。我想这会对你有帮助。
let assetsLib = ALAssetsLibrary()
assetsLib.writeVideoAtPathToSavedPhotosAlbum(postDetail.videoNsurl, completionBlock: { (assetURL: NSURL?, error: NSError?) -> Void in
if (error != nil) {
let alertView:UIAlertView = UIAlertView()
alertView.title = "Failed!"
alertView.message = error.localizedDescription
alertView.delegate = self
alertView.addButtonWithTitle("OK")
alertView.show()
} else {
if let validAssetURL = assetURL {
let alertView:UIAlertView = UIAlertView()
alertView.title = "Saved"
alertView.message = nil
alertView.delegate = self
alertView.addButtonWithTitle("OK")
alertView.show()
}
}
})