Блок UIImagePickerController Запись фильмов - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть приложение, в котором я пытаюсь записывать голосовые записи и видеозаписи.Я могу сделать одно или другое, но не оба, и проблема, кажется, моя AVAudioSession.Для записи и воспроизведения аудио я использую следующий код:

NSError *error = nil;

audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);

[audioSession setActive:YES error:&error];

Для захвата видео я использую UIImagePickerController:

- (BOOL)startCameraControllerFromViewController: (UIViewController*) controller usingDelegate: (id <UIImagePickerControllerDelegate, UINavigationControllerDelegate>) delegate
{
    NSLog(@"AAVC startCameraControllerFromViewController");

    if (([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO) || (delegate == nil) || (controller == nil))
    {
        return NO;
    }

    cameraUI = [[UIImagePickerController alloc] init]; 
    [cameraUI setSourceType:UIImagePickerControllerSourceTypeCamera];
    [cameraUI setAllowsEditing:NO];
    [cameraUI setDelegate:delegate];

    NSLog(@"cameraUI retainCount = %i", [cameraUI retainCount]);

    AccessAndrewAppDelegate *AppDelegate = [[UIApplication sharedApplication] delegate];

    if (AppDelegate.isMovie)
    {
        [cameraUI setMediaTypes:[[NSArray alloc] initWithObjects:(NSString *) kUTTypeMovie, nil]];
        [cameraUI setVideoQuality:UIImagePickerControllerQualityTypeLow];
        AppDelegate.isMovie = NO;
    }
    else
    {
        [cameraUI setMediaTypes:[[NSArray alloc] initWithObjects:(NSString *) kUTTypeImage, nil]];
    }

    [controller presentModalViewController:cameraUI animated:YES];

    return YES;
}

Что происходит прикод AVAudioSession и при попытке записать видео затвор откроется, а затем закроется и остановится.Если я закомментирую конфигурацию AVAudioSession видео записи;однако запись голоса не будет воспроизводиться должным образом.Есть идеи?

1 Ответ

0 голосов
/ 12 мая 2011

Это было решено.Это была проблема с моей AVAudioSession в делегате приложения.Нужно добавить немного логики if для перенастройки аудио сеанса, если камера была запущена для записи фильмов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...