Вы видели этот вопрос ?Они дают различные ответы:
float vol = [[AVAudioSession sharedInstance] outputVolume];
NSLog(@"output volume: %1.2f dB", 20.f*log10f(vol+FLT_MIN));
Тем не менее, кажется, что не работает с использованием симулятора (я пытаюсь, и он всегда возвращает одно и то же значение).Это заставило меня задуматься, может быть, это не то, что мы можем проверить на симуляторе.Можете ли вы примерить реальное устройство?Дайте мне знать, если это работает.
РЕДАКТИРОВАТЬ: Хорошо, поэтому, читая об этом, кажется, что нет никакого API, доступного для проверки тихого режима.Во всяком случае, что люди нашли обходной путь: воспроизведение короткого звука без громкости.Если время, когда оно заканчивается (минус время, когда оно началось), меньше, чем фактическая длина звука, находится в беззвучном режиме (в беззвучном режиме звук будет длиться 0 секунд).
Итак, здесь кто-то написал класс, который сделает это для вас.Дайте мне знать, если это работает