После того, как я изменил категорию AudioSession с kAudioSessionCategory_MediaPlayback
на kAudioSessionCategory_PlayAndRecord
, метод AudioQueueStart
завис на 3 ~ 5 секунд, чтобы начать запись.
Проблема возникает только на устройствах iOS с iOS 5, а не в Simulator или на устройствах с iOS 4 или iOS 3.
Вот что я пробовал:
Если я не изменяю категорию, но всегда использую kAudioSessionCategory_PlayAndRecord
, все работает нормально. AudioQueueStart
начать запись примерно через 0,01 секунды.
Но так как я хочу, чтобы мой звук исходил из динамика устройства, я не могу все время использовать kAudioSessionCategory_PlayAndRecord
.
Одновременное использование kAudioSessionOverrideAudioRoute_Speaker
и kAudioSessionCategory_PlayAndRecord
- хорошая идея, но если я это сделаю, мне также придется справляться с множеством ситуаций kAudioSessionProperty_AudioRouteChange
, таких как пользователь подключает или снимает наушники, подключает Bluetooth гарнитура и т. д. Это слишком сложно.
Любой совет или решение будет оценено.