Уменьшение громкости воспроизведения до нуля¶
В iOS приложении из-за упоминаемого здесь бага 17292753 невозможно уменьшить громкость воспроизведения аппаратными кнопками до нуля. Чтобы заглушить звук при воспроизведении, начиная со сборки 2.6.26 добавлены методы
для отключения и
для восстановления звука.
Чтобы обойти баг и позволить отключать звук аппаратными кнопками, необходимо подписаться на события изменения громкости (code)
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];
и при снижении уровня, возвращаемого кнопками, до определенного значения отключать звук, а при превышении - включать (code)
- (void)volumeChanged:(NSNotification *)notification
{
float volume =
[[[notification userInfo]
objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]
floatValue];
currentVolume = volume;
if (volume <= 0.0625) {
[[FPWCSApi2 getAudioManager] muteAudio];
} else {
[[FPWCSApi2 getAudioManager] unmuteAudio];
}
}