一:监听系统音量ios
1:添加 #import <AVFoundation/AVFoundation.h>session
2:在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 添加app
//监听系统声音ide
AVAudioSession *session = [AVAudioSession sharedInstance];spa
[session setCategory:AVAudioSessionCategoryAmbient error:nil];//重点方法server
[session setActive:YES error:nil];同步
NSError *error;ios9
[[AVAudioSession sharedInstance] setActive:YES error:&error];it
//注,ios9上不加这一句会无效io
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
3:在须要添加监听的地方监听音量
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];
//系统声音改变
-(void)volumeChanged:(NSNotification *)notification
{
float volume = [[[notification userInfo] objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] floatValue];
NSLog(@"FlyElephant-系统音量:%f", volume);
}
二:设置系统音量
#import <MediaPlayer/MediaPlayer.h>
//初步同步系统的音量跟耳机初步音量达成一致
MPVolumeView *volumeView = [MPVolumeView new];
volumeView.showsRouteButton = NO;
volumeView.showsVolumeSlider = NO;
[self.view addSubview:volumeView];
// __weak __typeof(self)weakSelf = self;
[[volumeView subviews] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([obj isKindOfClass:[UISlider class]]) {
//__strong __typeof(weakSelf)strongSelf = weakSelf;
volumeViewSlider = obj;//UISlider* volumeViewSlider;
*stop = YES;
}
}];
[volumeViewSlider setValue:volumeF animated:YES];