Сохранение записанного видео URL для последующего сохранения в библиотеке - PullRequest
5 голосов
/ 27 октября 2011

У меня есть приложение, где я записываю видео. Но когда запись закончена, я не могу сразу сохранить видео. Мне нужно сначала показать соглашение. Поэтому я пытаюсь сохранить URL-адрес, который я получаю из средства выбора изображений. И сохраните видео в библиотеке позже. Это работало нормально в iOS4, но не в iOS5. Я новичок в iOS и Objective-C, поэтому я, вероятно, сделал совершенно неправильное объявление свойства, которое должно содержать URL.

Это часть кода:

.h

#import <UIKit/UIKit.h>
#import <AssetsLibrary/AssetsLibrary.h>


@interface Video_recViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIActionSheetDelegate> {

NSURL *tempMoviePath;

}


@property (nonatomic, retain) NSURL *tempMoviePath;

.m

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

NSURL *moviePath = [info objectForKey:UIImagePickerControllerMediaURL]; 
[self dismissModalViewControllerAnimated: YES];
NSLog(@"path from image picker: %@", moviePath);
tempMoviePath = moviePath;
NSLog(@"temp movie path: %@", tempMoviePath);
//
[self performSelector:@selector(showAgree) withObject:nil afterDelay:0.5];

}

- (void)userAgreed {
NSLog(@"user agreed");
//NSLog(@"temp movie path: %@", tempMoviePath);
[self saveMyVideo:tempMoviePath];
//[self performSelector:@selector(showSurvey) withObject:nil afterDelay:0.5];
}

- (void)saveMyVideo:(NSURL *)videoURL {

NSLog(@"saving movie at: %@", videoURL);

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:videoURL])
{
    [library writeVideoAtPathToSavedPhotosAlbum:videoURL
                                completionBlock:^(NSURL *assetURL, NSError *error){}
     ];
} 
[library release]; 

}

Вывод из журнала, когда didFinishPickingMediaWithInfo равен:

temp movie path: file://localhost/private/var/mobile/Applications/8CFD1CB7-70A0-465C-B730-817ACE5A4F78/tmp/capture-T0x119660.tmp.hNFzkY/capturedvideo.MOV

Вывод из журнала при выполнении «saveMyVideo». URL внезапно превратился в это! :

saving movie at: (
"0.31269",
"0.32899",
"0.63999",
"0.33001",
"0.3",
"0.6",
"0.15",
"0.05999"
)

1 Ответ

0 голосов
/ 27 января 2015

(Ответ ОП в редактировании вопроса. См. Вопрос без ответов, но проблема решена в комментариях (или расширена в чате) )

ОП написал:

Неправильный код:

tempMoviePath = moviePath;

Поскольку я устанавливаю объявленное свойство, я должен использовать методы set & get.Это должно быть:

[self setTempMoviePath:moviePath];

Очевидно, что iOS 4 не была такой сложной, но iOS5 не может справиться с этим.Но, во всяком случае, это было неправильно писать так.Я признаю свою ошибку.:)

...