【发布时间】:2014-07-21 18:43:26
【问题描述】:
SO 上有很多问题和答案都说[AVAudioSession sharedInstance].outputVolume 是检测设备音量的唯一方法。但它似乎并不完全正确。 outputVolume 永远不会改变,尽管它在第一次设置时是正确的(在应用程序启动时)。
我做错了吗?除了读取outputVolume 的值,我不知道还能做什么。我的直觉会告诉我这是一个错误,如果不是因为 other people 似乎做得很好。我还在 iOS 7 和 8 上对其进行了测试,所以它不是 iOS 8 的错误。我在一个小型测试项目中复制了同样的东西,所以我的项目中没有任何东西干扰它。
另外:我很清楚铃声音量和音量之间的区别。我都改了,报的量还是没变。
这是我在测试项目中使用的函数:
- (void)checkVolume
{
float volume = [AVAudioSession sharedInstance].outputVolume;
NSLog(@"Volume: %f", volume);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^
{
[self checkVolume];
});
}
【问题讨论】:
标签: ios avaudiosession