2014-06-18 2 views
2

내가 만들고있는 앱의 일부로 사용자의 오디오를 녹음해야합니다. 이 작업을 수행하기 위해 AVAudioRecorder을 사용하기로했습니다.이상한 문제를 재생하는 동안 AVAudioSession 레코드

오디오를 녹음하기 시작하면 장치에서 재생되는 모든 오디오가 일시 중지됩니다. 그런 다음 Apple docs에서 AVAudioSession을보고 녹음 옵션을 AVAudioSessionCategoryOptionMixWithOthers으로 설정했습니다.

녹음을 시작할 때마다 장치에서 재생되는 모든 오디오가 주 외부 스피커에서 작은 전화 (통화) 스피커로 전환됩니다.

내 목표는 기기의 다른 모든 오디오가 메인 스피커를 통해 출력되도록하면서 오디오를 녹음하는 것입니다.

어떻게하면됩니까?

여기 내 코드는 현재의 :

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error]; 
    [audioSession setActive:YES error:&error]; 

    recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error]; 

    if(recorder != nil){ 
     [recorder prepareToRecord]; 
     recorder.meteringEnabled = YES; 
     [recorder record]; 
     levelTimer = [NSTimer scheduledTimerWithTimeInterval:0.03 target:self selector:@selector(levelTimerCallback:) userInfo:nil repeats:YES]; 
    }else{ 
     NSLog(@"Error: %@",[error description]); 
    }//end if 

감사합니다!

답변

2

아마도 AVAudioSessionCategoryOptionDefaultToSpeaker을 사용해보세요. AVAudioSession 기준에 따르면

이 옵션 (예 : 헤드셋과 같은) 다른 오디오 경로를 사용 가능하며, 세션 오디오 장치의 내장 스피커를 통해 재생됩니다. 이 옵션을 사용하지 않고 다른 오디오 출력을 사용할 수 없거나 선택하지 않으면 오디오가 수신기 (귀에 고정되도록 의도 된 스피커)를 통해 재생됩니다.

관련 문제