Question

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

Était-ce utile?

La solution

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;

Autres conseils

float volume = [[AVAudioSession sharedInstance] outputVolume];

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top