Как получить системный том iOS?

Я нашел пример здесь, но он не работает на ios6.1.3 (iphone 4s). всегда возвращать 0.187500

Код:

Float32 volume;
UInt32 dataSize = sizeof(Float32);

AudioSessionInitialize (NULL, NULL, NULL, NULL);
AudioSessionGetProperty (
                     kAudioSessionProperty_CurrentHardwareOutputVolume,
                     &dataSize,
                     &volume
                     );
NSLog(@"%f", volume);

[AVAudioSession sharedInstance].outputVolume — также возвращает 0,187500


person user2168735    schedule 15.08.2013    source источник


Ответы (2)


Вам необходимо инициализировать аудиосессию с помощью:

AudioSessionInitialize (NULL, NULL, NULL, NULL);

в viewDidLoad или подобном.

Однако, как правило, лучше использовать новый AVAudioSession, если вы ориентируетесь на iOS 6+, который сделает это за вас:

float volume = [AVAudioSession sharedInstance].outputVolume;
person Hampus Nilsson    schedule 15.08.2013
comment
Я попытался вставить AudioSessionInitialize (NULL, NULL, NULL, NULL); теперь всегда возвращайте 0,187500, громкость на полную. - person user2168735; 15.08.2013
comment
[AVAudioSession sharedInstance].outputVolume — также возвращает 0,187500 - person user2168735; 15.08.2013

float volume = [[AVAudioSession sharedInstance] outputVolume];

person akanki07    schedule 17.09.2014
comment
Лучшие ответы имеют некоторое объяснение, а также код. Пожалуйста, рассмотрите возможность добавления некоторого контекста. - person Chris; 18.09.2014