Для сохранения в библиотеке после того, как 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. Или вы можете просто перечислить в assetLibrary и вытащить его оттуда.
Надеюсь это поможет,
Ваше здоровье,
Майкл
person
fatuous.logic
schedule
15.04.2011