1.修改系统音量 MPVolumeView 系统提供的音量控件,它里面的MPVolumeSlider是私有的 但是可以获取它来改变他的value从而修改音量,如果不想要系统的音量改变的提示框,可以把MPVolumeView放在屏幕外面
MPVolumeView*volumeView = [[MPVolumeViewalloc]init];
[self.viewaddSubview:volumeView];
UISlider* volumeViewSlider =nil;
for(UIView*viewin[volumeViewsubviews]){
if([view.class.descriptionisEqualToString:@"MPVolumeSlider"]){
volumeViewSlider = (UISlider*)view;
break; }
}
floatsystemVolume = volumeViewSlider.value;
[volumeViewSlidersetValue:1.0fanimated:NO];
_volumeViewSlider= volumeViewSlider;
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
2.监听系统音量的改变
NSError *error;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];//注,ios9上不加这一句会无效,加了这一句后,
//在移除通知时候加上这句[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
-(void)volumeChanged:(NSNotification *)noti{
float volume = [[[noti userInfo] objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] floatValue];
NSLog(@"volumn is %f", volume);
}
网友评论