Aha*_*uhe 6 ios avaudiosession
SO上有很多问题和答案,这[AVAudioSession sharedInstance].outputVolume是检测设备音量的唯一方法.但它似乎没有正常工作.outputVolume永远不会改变,尽管它在第一次设置时是正确的(在应用程序启动时).
我做错了吗?除了阅读价值之外,我不知道还能做什么outputVolume.我的直觉会告诉我这是一个错误,如果不是因为其他人似乎做得很好.我还在iOS 7和8上测试了它,所以它不是iOS 8的bug.我在一个小型测试项目中重现了同样的事情,所以我的项目中没有任何东西干扰它.
另外:我很清楚铃声音量和音量之间的区别.我改变了两个,报告的数量仍然没有改变.
这是我在测试项目中使用的函数:
- (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];
});
}
Run Code Online (Sandbox Code Playgroud)
Yar*_*sim 20
使用KVO,并确保激活sharedInstance:
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[[AVAudioSession sharedInstance] addObserver:self forKeyPath:@"outputVolume" options:NSKeyValueObservingOptionNew context:nil];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4502 次 |
| 最近记录: |