Вопрос

I found an example here, but it does not work on ios6.1.3 (iphone 4s). always return 0.187500

Code:

Float32 volume;
UInt32 dataSize = sizeof(Float32);

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

[AVAudioSession sharedInstance].outputVolume - also return 0.187500

Это было полезно?

Решение

You need to initialize the audio session with:

AudioSessionInitialize (NULL, NULL, NULL, NULL);

in viewDidLoad or similar.

However, it's generally a better idea to make use of the new AVAudioSession class if you're targeting iOS 6+, which handles that for you:

float volume = [AVAudioSession sharedInstance].outputVolume;

Другие советы

float volume = [[AVAudioSession sharedInstance] outputVolume];

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top