调节屏幕亮度
方法:
[[UIScreen mainScreen] setBrightness: value];```
`value:value`就是屏幕的亮度值 这个值介于`0`和`1`之间
另外 这个方法 会即时刷新 无需手动刷新 但这个方法是调整整个手机界面的亮度的 并不仅仅是某个app的亮度 也就是说这个亮度就是在你完全退出这个app后还是会保持的 所以当我们不需要这个亮度继续保持的时候 我们需要在app的代理方法里做些处理 :
//这个方法会在app失去激活状态的时候调用 比如说程序进入后台
-
(void)applicationWillResignActive:(UIApplication *)application {
[[UIScreen mainScreen] setBrightness: 0.5];//0.5是自己设定认为比较合适的亮度值
}```
//获取当前屏幕的亮度:
CGFloat *currentLight = [[UIScreen mainScreen] brightness];```
另外,屏幕的亮度调节只能在真机上看到效果 在模拟器上看不到效果
#####调节系统音量
调节系统音量有两个方法:
######第一种:
使用前请导入库 #import <MediaPlayer/MediaPlayer.h>
//这个默认值是YES,为了突出我又刻意设置了一遍,设为NO之后,系统音量条是隐藏了,可是会弹出音量提示框
`_volumeView.showsVolumeSlider = YES;`
//通过设置frame来达到隐藏音量滑动条
`[_volumeView setFrame:CGRectMake(-1000, -1000, 10, 10)];`
//去掉提示框
`_volumeView.showsRouteButton = NO;`
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_volumeView = [[MPVolumeView alloc]init];
_volumeView.showsRouteButton = NO;
//默认YES,这里为了突出,故意设置一遍
_volumeView.showsVolumeSlider = YES;
[_volumeView sizeToFit];
// [_volumeView setFrame:CGRectMake(-1000, -1000, 10, 10)];
// [self.view addSubview:_volumeView];//*****亲测,这行代码是现实音量指示器的关键所在*****
[_volumeView userActivity];
}
-
(IBAction)changeVolume:(UISlider )sender {
/
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];
//This property is deprecated -- use MPVolumeView for volume control instead.
//在7.0以后苹果反对使用此方法,建议用MPVolumeView
mpc.volume = sender.value; //0.0~1.0
*/static UISlider * volumeViewSlider = nil;
if (volumeViewSlider == nil) {for (UIView* newView in _volumeView.subviews) { if ([newView.class.description isEqualToString:@"MPVolumeSlider"]){ volumeViewSlider = (UISlider*)newView; break; } }
}
NSLog(@"%.2f",volumeViewSlider.value);volumeViewSlider.value = sender.value;
}
还可以接收音量改变的通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChange:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];```
/** 改变铃声 的 通知
"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);
}
}
第二种:
下面这种方法大家就不要试了,在7.0以后苹果反对使用此方法,建议用MPVolumeView类。
使用前请导入库 #import <MediaPlayer/MediaPlayer.h>
如果想单纯的控制音量,则不推荐使用第二种方法。
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];
//This property is deprecated -- use MPVolumeView for volume control instead.
//在7.0以后苹果反对使用此方法,建议用MPVolumeView
mpc.volume = 0; //0.0~1.0```
使用第二种方法会出现一个warning:提示这个API已经在7.0之后废弃掉了,但是依然可以使用。
这是我的写的一个[Demo](https://github.com/SmallwolfiOS/BrightnessAndSound.git)
相关资料:
http://www.jianshu.com/p/683f3f312a79
https://github.com/TieShanWang/GitDemo
https://github.com/yueshangfeng/iOS-1-
http://blog.csdn.net/qq_32010299/article/details/51313114