UISaveVideoAtPathToSavedPhotosAlbum crash - PullRequest
       14

UISaveVideoAtPathToSavedPhotosAlbum crash

1 голос
/ 09 февраля 2012

У меня UIImagePickerController в режиме видео;После того, как я закончу запись видео и нажму кнопку «Использовать», чтобы принять видео, я использую этот метод -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info, и внутри него я хочу сохранить видео в рулоне камеры и извлечь первый кадр из видео, чтобы показать его в UIImageView.Код, который я использую, выглядит следующим образом:

    NSString *tempFilePath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
    NSURL *url = [NSURL fileURLWithPath:tempFilePath];
            
    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
    moviePlayer.shouldAutoplay = NO;
    imageView.image = [moviePlayer thumbnailImageAtTime:0.0 timeOption:MPMovieTimeOptionNearestKeyFrame];

Проблема в том, что, если я добавлю метод UISaveVideoAtPathToSavedPhotosAlbum сбой приложения.

UISaveVideoAtPathToSavedPhotosAlbum(tempFilePath, self,  @selector(video:didFinishSavingWithError:contextInfo:), nil);

, где tmpFilePath то же самоечто я использовал выше.

Вместо этого, если я использую только одну из этой операции (UISaveVideoAtPathToSavedPhotosAlbum или получить фрейм), все работает нормально!

Консоль сообщает об этой ошибке:

Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «+ [NSInvocation invocationWithMethodSignature:]: аргумент сигнатуры метода не может быть равен нулю»

Есть идеи?Спасибо ...

1 Ответ

5 голосов
/ 09 февраля 2012

Реализуете ли вы в своем классе следующий метод?

- (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
...