Чтобы сохранить в библиотеке после того, как assetWriter закончит запись фильма / захват изображения.
Поместите это сверху над файлом реализации * Это пример сохранения видеофайла, но вы можете изменить эточтобы сохранить ваше изображение:
ALAssetsLibraryWriteVideoCompletionBlock _videoCompblock = ^(NSURL *assetURL, NSError *error){
if(assetURL){
NSLog(@"Saved to camera roll with Video AssetUrl : %@", [assetURL absoluteString]);
NSError *error;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDictionary *attributes = [fileManager attributesOfItemAtPath:[assetURL absoluteString] error:&error];
if (attributes){
long fileSize = [[attributes objectForKey:NSFileSize] longValue];// unsigned long long
NSLog(@"%d", fileSize);
}
}else if(error){
NSLog(@"The Error occured : %@", [error localizedDescription]);
}
};
Затем вам понадобится функция, которая использует вышеупомянутый блок - поэтому, когда вы записываете сеанс заканчивает запись, есть что-то вроде этого:
-(void) stopRecording{
writing = NO;
isRecording = NO;
[audioInput markAsFinished];//if you have an audio writer stop it too
[videoInput markAsFinished];
[assetWriter endSessionAtSourceTime:[frTimer currentTimeStamp]];
[assetWriter finishWriting];
finished = YES;
[videoUtilities saveToCamera:[assetWriter outputURL]];
NSLog(@"%@", [[assetWriter outputURL] absoluteString]);
}
, который запускает функцию сохранения в камеру, которая будет выглядеть примерно так:
+(void) saveToCamera:(NSURL *)urlPath{
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
AVAsset *movFile = [AVURLAsset URLAssetWithURL:urlPath options:nil];
NSLog(@"Movie File %@", movFile);
BOOL isSupported = [library videoAtPathIsCompatibleWithSavedPhotosAlbum:urlPath];
if(isSupported){
NSLog(@"IS SUPPORTED - SAVING TO CAMERA ROLL");
[library writeVideoAtPathToSavedPhotosAlbum:urlPath completionBlock:_videoCompblock];
}
}
Если вы пытаетесь отобразить сохраненное изображениев реальном времени, как вы это делаете - вам нужно скопировать UIImageData в объект UIImage при съемке фотографии - и назначить его в качестве изображения для UIImageView.Или вы можете просто перечислить библиотеку asset и вывести ее оттуда.
Надеюсь, это поможет,
Cheers,
Michael