如何获得System Volume iOS?

时间:2013-08-15 16:30:13

标签: avfoundation audiotoolbox

我找到了一个示例here,但它不适用于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

2 个答案:

答案 0 :(得分:4)

您需要使用以下命令初始化音频会话:

AudioSessionInitialize (NULL, NULL, NULL, NULL);

viewDidLoad或类似内容。

但是,如果您的目标是iOS 6+,那么通常最好使用新的AVAudioSession课程,以便为您处理:

float volume = [AVAudioSession sharedInstance].outputVolume;

答案 1 :(得分:4)

float volume = [[AVAudioSession sharedInstance] outputVolume];