Частичный успех - хороших вариантов нет
iPhone Simulator выбирает текущий выбранный выход при запуске. Используя плагин Soundflower и отправляя аудио в никуда, я запустил iPhone Simulator. Если вы затем переключитесь на другой, работающий, выходной сигнал симулятора, он останется «отключенным», пока вы не перезапустите симулятор. В общем, вы можете попытаться обмануть симулятор для вывода в тупиковый выход.
Экспериментальная установка - образец видеоплеера
Я работаю над решением этой проблемы и в качестве первого шага создал демонстрационное приложение для видеоплеера. Вы можете загрузить VideoPlayer с GitHub для своих собственных экспериментов.
Первая попытка - используйте стороннее приложение, чтобы отключить его
Попытка с помощью Audio Hijack Pro от Rogue Amoeba для захвата аудиопотока и его отключения. Это не сработало и вылетало на симуляторе. Обратились в службу поддержки, и они сообщили, что iPhone Simulator делает некоторые вещи, которые мешают им захватить звук. Я также изучил Soundflower и Jack .
Вторая попытка - Отключение звука в приложении
Я подумал, что, возможно, вы могли бы сделать опцию отладки, когда в приложении и на симуляторе звук будет отключен. Однако в приложении только частные API могут отключить или уменьшить громкость устройства. В книге Разработка открытых приложений для iPhone Глава 6, Пример «Что такое моя громкость» дает пример кода для манипулирования общесистемным звуком через AVSystemController. Может быть, интересно исследовать этот маршрут, но превратить его в Оружейный инструмент потребует много хлопот, так как вам нужно скомпилировать против частных заголовков.
Идея Три
Найдите параметр командной строки для передачи в Springboard или iPhone Simulator, который отключит звук, или снова включите регулятор громкости в симуляторе и, конечно, сможете запустить отладчик.
Запрос на улучшение
Я подал Apple Bug Report запрос на улучшение как для регулятора громкости iPhone Simulator, запрос 13428429, так и для регулятора громкости для каждого приложения в Mac OS X, запрос 13428420. Если вы хотите использовать эти функции, подайте свой ошибка.