一:監聽系統音量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];