В iOS приложении из-за упоминаемого здесь бага 17292753 невозможно уменьшить громкость воспроизведения аппаратными кнопками до нуля. Чтобы заглушить звук при воспроизведении, начиная со сборки 2.6.26б добавлены методы
[[FPWCSApi2 getAudioManager] muteAudio];
для отключения и
[[FPWCSApi2 getAudioManager] unmuteAudio];
для восстановления звука.
Чтобы обойти баг и позволить отключать звук аппаратными кнопками, необходимо подписаться на события изменения громкости (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]; } }