Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

В iOS  приложении из-за упоминаемого здесь бага 17292753 невозможно уменьшить громкость воспроизведения  аппаратными кнопками до нуля. Чтобы заглушить звук при воспроизведении, начиная со сборки 2.6.26б добавлены методы

Code Block
languagecpp
themeRDark
[[FPWCSApi2 getAudioManager] muteAudio];

для отключения и

Code Block
languagecpp
themeRDark
[[FPWCSApi2 getAudioManager] unmuteAudio];

для восстановления звука.

Чтобы обойти баг и позволить отключать звук аппаратными кнопками, необходимо подписаться на события изменения громкости (code)

Code Block
languagecpp
themeRDark
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];

и при снижении уровня, возвращаемого кнопками, до определенного значения отключать звук, а при превышении - включать (code)

Code Block
languagecpp
themeRDark
- (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];
    }
    
}