获取iOS 7的设备输出量?

时间:2014-05-07 11:06:10

标签: ios iphone ipad avaudiosession

我正在使用iOS库播放音频广告,我想在每次请求广告之前检查设备输出音量是否为零(静音或静音)。

我使用了以下codeAny来检查设备的输出音量

+(BOOL)isDeviceMuted
{
    Float32 val = -1.0;
    UInt32 propertySize = sizeof(val);
    AudioSessionInitialize(NULL, NULL, NULL, NULL);
    AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, &propertySize, &val);

    NSLog(@"value of volume: %f",val);
    if (val <= 0) {
        return YES;
    }
    else {
        return NO;
    } 
}

此代码到目前为止完美无缺,但是在iOS 7上不推荐使用AudioSessionGetProperty的问题,而我想用新的代码替换不被弃用的代码(最低iOS SDK为6)

我试过以下

val = [[AVAudioSession sharedInstance] outputVolume];

但是outputVolume的问题是它需要音频会话才能激活它以跟踪它的变化。

[[AVAudioSession sharedInstance] setActive: YES error: nil];

我们无法在库内执行此操作,因为它会影响用户应用程序(sharedInstance)

任何想法!!

1 个答案:

答案 0 :(得分:0)

使用otherAudioPlaying属性来确定另一个应用是否正在播放音频

[[AVAudioSession sharedInstance] isOtherAudioPlaying]