2011-04-19 2 views
0

음성 녹음 및 비디오 녹음을 캡처하려는 앱이 있습니다. 하나 또는 둘 다를 할 수 있지만 둘 다 할 수는 없으며 문제는 내 AVAudioSession 인 것 같습니다. 내가 UIImagePickerController를을 비디오를 캡처하기 위해 블록 UIImagePickerController 동영상 녹화

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]; 

사용하고

: 오디오를 기록하고 재생하기 위해 나는 다음과 같은 코드를 사용하고있어 AVAudioSession 코드를 사용하여 언제 어떻게됩니까

- (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 구성을 주석 처리하면 비디오 레코드가됩니다. 그러나 음성 녹음은 제대로 재생되지 않습니다. 어떤 아이디어?

답변

0

이 문제가 해결되었습니다. 앱 대리인의 AVAudioSession에 문제가있었습니다. 카메라를 시작하여 영화를 녹화하는 경우 오디오 세션을 다시 구성하려면 논리를 추가해야합니다.