iOS监控系统音量 手机音量

监控系统音量可以直接用

[NSNotificationCenter defaultCenter 观察息]@"AVSystemController_SystemVolumeDidChangeNotification

添加通知之后监控到的


// 监控系统的音量变化

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



NSNotification的 userInfo 会有两种,

一种是 系统铃声的变化,

一种是系统的音量的变化

如下:

/** 

改变铃声 通知

 

 "AVSystemController_AudioCategoryNotificationParameter" = Ringtone;    // 铃声改变

 "AVSystemController_AudioVolumeChangeReasonNotificationParameter" = ExplicitVolumeChange; //改变原因

 "AVSystemController_AudioVolumeNotificationParameter" = "0.0625";  // 当前值

 "AVSystemController_UserVolumeAboveEUVolumeLimitNotificationParameter" = 0; 最小值

 

 

 改变音量的通知

 "AVSystemController_AudioCategoryNotificationParameter" = "Audio/Video"; // 音量改变

 "AVSystemController_AudioVolumeChangeReasonNotificationParameter" = ExplicitVolumeChange; //改变原因

 "AVSystemController_AudioVolumeNotificationParameter" = "0.3";  // 当前值

 "AVSystemController_UserVolumeAboveEUVolumeLimitNotificationParameter" = 0; 最小值

 */

-(void)volumeChange:(NSNotification*)notifi{

    NSString * style = [notifi.userInfo objectForKey:@"AVSystemController_AudioCategoryNotificationParameter"];

    CGFloat value = [[notifi.userInfo objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] doubleValue];

    if ([style isEqualToString:@"Ringtone"]) {

        NSLog(@"铃声改变");

    }else if ([style isEqualToString:@"Audio/Video"]){

        NSLog(@"音量改变当前值:%f",value);

    }

}


可以参考 Demo

如果要控制系统的音量变化 请参考另外一篇文章


你可能感兴趣的:(知识库)