내 iPhone 응용 프로그램은 사용자가 헤드폰을 연결했는지 여부를 알고 있어야합니다. 쉽습니다. AudioSessionAddPropertyListener로, kAudioSessionProperty_AudioRouteChange를 청취하는 콜백을 가진다.중단 후 녹음 할 때 오디오 경로 변경 알림이 지연됩니다.
NSLog로 로그를 작성합니다. 사용자가 헤드폰을 꽂으시겠습니까? gdb 콘솔에서 알림 및 한 줄을 가져옵니다. 사용자가 헤드폰을 뽑았습니까? 같게.
동시에 오디오 녹음 대기열을 시작하여 환경의 소음을 감지하고 있습니다. 이것 역시 훌륭하게 작동합니다 : 마이크 잡음 레벨을 얻고 오디오 경로 변경 사항을 청취 할 수 있습니다.
중단 후 오디오 세션을 다시 활성화하고 오디오 카테고리를 kAudioSessionCategory_RecordAudio로 복원하면 오디오 경로 알림이 다소 복잡해집니다.
헤드폰을 연결할 때 알림이 표시되지 않습니다. 헤드폰을 뽑으면 "연결됨"알림과 "연결되지 않은"알림이 빠르게 연속적으로 표시됩니다.
"플러그인 된"알림이 지연된 것과 같으며 "연결되지 않은"알림이 도착하면 보류중인 알림 큐가 플러시됩니다.
내가 뭘 잘못하고 있니? 오디오 세션을 올바르게 복원하여 시간을 많이 보내는 알림을 받으려면 어떻게합니까?
EDIT : iPhone OS 3.1.2, iPhone 3G에서 실행 중. 3.0 SDK (XCode 3.1.2 내에서)로 컴파일 된 프로그램을 실행하고 있습니다.
어떤 OS 및 하드웨어입니까? –
죄송합니다 : OS/하드웨어 버전을 추가하기 위해 편집 된 질문입니다. –