2016-09-20 4 views
3

Интересно, есть ли какой-либо способ программно отключить микрофон (чтобы избавиться от красной полосы в фоновом режиме)?Программный отключение микрофона

Я использую OpenEars для прослушивания команд в приложении. Когда я иду на фон, появляется красная полоска (что очевидно, поскольку микрофон активен). Проблема в том, что микрофон активен, даже если OpenEars suspended. Чтобы избежать ненужных вопросов, я не могу stop OpenEars, поскольку это заканчивается смешением audioSession с другими моими источниками.

ответ

3

«Красная полоса» никогда не исчезнет, ​​даже если микрофон не используется вашим приложением, если вы явно не остановите сеанс аудио. Это мера безопасности, которую Apple установила, чтобы предупредить пользователей вашего приложения о том, что он слушает их микрофон, даже если вы ничего не делаете с данными микрофона в тот момент.

Если вы используете AUAudioUnit, возможно, вам удастся установить isInputEnabled на false.

+0

Я знал, что он уже пишет «что очевидно, поскольку микрофон активен». Поэтому мой вопрос заключался в том, как отключить микрофон без остановки аудио сессии (что делает OpenEars)? – konradowy

+0

@falkon Правильно, я понимаю ваш вопрос. Ответ - это невозможно. – JAL

0

Я не уверен, что он попадает в дело OpenEars, но вы пытались переключить AudioSessionCategory, когда ваше приложение переходит в фоновый/приостановленный режим? Если вы переключитесь на категорию, которая не позволяет вводить микрофон, я предполагаю, что это остановит микрофон. Затем вы можете вернуться к нужной категории, когда ваше приложение возобновится.