2016-12-05 10 views
0

Недавно я начал добавлять аудио в свой проект, когда вы нажимаете кнопку, это произведет приятный звуковой эффект, но даже если мой микрофон выключится, звук все еще играет. Я хотел бы знать, как обнаружить, что пользователь переключился на переключатель отключения звука, и если так отключить звук приложения полностью.Приглушение звука при переключении пользователя при отключении звука

ответ

1

Вам не нужно на самом деле проверить, если немой переключатель включен, вместо этого, просто скажите AudioSession какой категории режим воспроизведения подходит и пусть IOS решить, если звук должен играть или нет.

https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html

Вы хотите AVAudioSessionCategoryAmbient, который будет вызывать приложение, чтобы заставить замолчать с помощью кнопки отключения звука.

+0

Спасибо! Трюк! –

0

Apple не имеет прямого API, чтобы узнать о бесшумном режиме на iPhone. однако у нас есть определенная работа, чтобы понять это.

Предыдущие ответы могут помочь вам найти обходной путь.

How to programmatically sense the iPhone mute switch?

How can I detect whether an iOS device is in silent mode or not?

Для быстрого и рабочего раствора от SO answer.

// "Ambient" makes it respect the mute switch 
// Must call this once to init session 
if (!gAudioSessionInited) 
{ 
    AudioSessionInterruptionListener inInterruptionListener = NULL; 
    OSStatus error; 
    if ((error = AudioSessionInitialize (NULL, NULL, inInterruptionListener, NULL))) 
    { 
     NSLog(@"*** Error *** error in AudioSessionInitialize: %d.", error); 
    } 
    else 
    { 
     gAudioSessionInited = YES; 
    } 
} 

SInt32 ambient = kAudioSessionCategory_AmbientSound; 
if (AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (ambient), &ambient)) 
{ 
    NSLog(@"*** Error *** could not set Session property to ambient."); 
} 
+0

Я вижу .... и где я помещаю этот код, чтобы отключить звук или звук кнопки всего приложения, если отключен звук? –

+0

Я положил это на viewdidload? –