Громкость звука приложения

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

Спасибо!


person douglasd3    schedule 16.04.2012    source источник


Ответы (2)


Чтобы использовать эту функцию, вам нужно настроить аудиосессию на воспроизведение. Это делается примерно так:

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
person Manuel    schedule 16.04.2012
comment
Вам нужно активировать сеанс или этого достаточно? - person sooper; 16.04.2012
comment
Фактическое увеличение/уменьшение уровня звука осуществляется операционной системой. - person Manuel; 16.04.2012
comment
Например: объем моего устройства заполнен, затем я запускаю свое приложение и уменьшаю громкость до половины. Если я выйду из своего приложения, объем моего устройства должен быть заполнен, а если я снова войду в мое приложение, он должен быть наполовину. Это решение будет делать это? - person douglasd3; 16.04.2012
comment
Нет, для этого вам нужно будет сохранить «текущий» объем при запуске приложения и установить его обратно на этот объем при выходе. Громкость, установленная в приложении, является громкостью мультимедиа, а не громкостью звонка. - person Manuel; 16.04.2012

сбрасывается в appdelegate

  - (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [[NSNotificationCenter defaultCenter]
         addObserver:self
         selector:@selector(volumeChanged:)
         name:@"AVSystemController_SystemVolumeDidChangeNotification"
         object:nil];
    }

    - (void)volumeChanged:(NSNotification *)notification
    {
        float volume =
        [[[notification userInfo]
          objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]
         floatValue];

        // Do stuff with volume
    }
person Binoy jose    schedule 14.10.2015