【发布时间】:2014-05-07 11:06:10
【问题描述】:
我正在开发用于播放音频广告的 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)
任何想法!
【问题讨论】:
-
这个 [stackoverflow.com/questions/18945931/… 可能会给你解决方案。 [1]:stackoverflow.com/questions/18945931/…
-
继续使用旧代码。已弃用并不意味着损坏或非法。
-
deprecated 表示在某些iOS版本中会失效
标签: ios iphone ipad avaudiosession