2011-10-13 1 views
1

AudioSession의 범주를 kAudioSessionCategory_MediaPlayback에서 kAudioSessionCategory_PlayAndRecord으로 변경 한 후 AudioQueueStart 메서드가 약 3 ~ 5 초 걸려 녹음이 시작됩니다.iOS 5에서 범주를 변경 한 후 "AudioQueueStart"가 녹음을 시작하는 데 3 ~ 5 초 사용되었습니다.

내가 '돈 경우

이 문제는 단지에서 iOS 5를 실행 iOS 장비가 아닌 시뮬레이터 또는 장치가 여전히 아이폰 OS 4 또는 iOS 여기에 3

을 실행에 발생

내가 시도 무엇 카테고리를 변경하지만 항상 kAudioSessionCategory_PlayAndRecord을 사용하면 모든 것이 잘 작동합니다. AudioQueueStart 약 0.01 초 후에 녹음이 시작됩니다. 하지만 내 소리가 장치의 스피커에서 나오기를 원하기 때문에 항상 kAudioSessionCategory_PlayAndRecord을 사용할 수 없습니다. 동시에

사용 kAudioSessionOverrideAudioRoute_SpeakerkAudioSessionCategory_PlayAndRecord 좋은 생각하지만 난 그렇게 할 경우, 또한 등, 그것 등의 사용자 플러그가 kAudioSessionProperty_AudioRouteChange 많은 상황을 처리하거나 헤드폰을 제거, 블루투스 헤드셋을 연결해야 너무 복잡합니다.

조언이나 해결책을 제공해 주시면 감사하겠습니다.

답변

3

마지막으로 나는 iOS 5의 버그라고 생각하는 문제를 해결할 수있는 방법을 찾았습니다.

나는 kAudioSessionCategory_PlayAndRecord에 범주를 설정하고 아래 코드를 사용합니다

UInt32 defaultToSpeaker = TRUE; 
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(defaultToSpeaker), &defaultToSpeaker); 

주, 아이폰 OS 3.1 이상에서만 사용할 수있는 kAudioSessionProperty_OverrideCategoryDefaultToSpeaker ID를.

+1

헤드셋이 연결된 경우에도이 기능이 작동합니까 ?? – Alan