4

如何使用 AVSystemController 获取 iphone 当前的铃声音量级别

我也试过下面的代码来检查音量

MPVolumeView *slide = [MPVolumeView new];
UISlider *volumeViewSlider;

for (UIView *view in [slide subviews]){
    if ([[[view class] description] isEqualToString:@"MPVolumeSlider"]) {
        volumeViewSlider = (UISlider *) view;
    }
}
float val = [volumeViewSlider value];

但是当我打印/检查 val 时,它返回 1.00

我也试过下面的代码

musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
Nslog(@"%f",musicPlayer.volume);

但如果我的手机静音,它也会返回 1.00 事件。我参考下面的链接 如何确定 iPhone 铃声的当前级别?但我找不到解决方案。

请帮忙。

4

1 回答 1

3

尝试这个:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(volumeChanged:)
                                             name:@"AVSystemController_SystemVolumeDidChangeNotification"
                                           object:nil];

- (void)volumeChanged:(NSNotification *)notification{
   NSDictionary*dict=notification.userInfo;
   float newVolume =
   [[dict objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]floatValue];
    //my comment: newVolume is value that you need
}
于 2014-05-08T07:42:43.683 回答