Приложение для iPhone требует, чтобы я знал, когда пользователь не подключил наушники. Это легко. AudioSessionAddPropertyListener с обратным вызовом, прослушивающим kAudioSessionProperty_AudioRouteChange.После прерывания с задержкой уведомления об изменении маршрута аудио при записи
Я пишу журналы с NSLog, когда все происходит. Пользователь подключает наушники? Получите уведомление и строку в консоли gdb. Пользователь отключает наушники? То же самое.
В то же время я ощущаю уровень шума окружающей среды, запустив звуковую очередь записи. Это тоже отлично работает: я могу получить уровень микрофонного шума и отлично слушать аудио-маршруты.
То, что я нахожу, это то, что после перерыва, и я активировал аудио-сессию и восстановил категорию звука до kAudioSessionCategory_RecordAudio, уведомления о маршрутах аудио немного сбиты.
Когда я подключаю наушники, я не вижу уведомления. Когда я отсоединяю наушники, я вижу BOTH уведомление об «подключенном» и «отключенное» уведомление в быстрой последовательности.
Это похоже на задержку уведомления «заперто», и, когда приходит сообщение «отключено», очередь ожидающих уведомлений очищается.
Что я делаю неправильно? Как правильно восстановить сеанс аудио, чтобы получать временные уведомления?
EDIT: iPhone OS 3.1.2, работающий на iPhone 3G. Я запускаю программу, скомпилированную с 3.0 SDK (из XCode 3.1.2).
Какая ОС и оборудование? –
Извините: отредактированный вопрос, чтобы добавить версии ОС/оборудования. –