調(diào)節(jié)屏幕亮度
方法:
[[UIScreen mainScreen] setBrightness: value];```
`value:value`就是屏幕的亮度值 這個(gè)值介于`0`和`1`之間
另外 這個(gè)方法 會(huì)即時(shí)刷新 無需手動(dòng)刷新 但這個(gè)方法是調(diào)整整個(gè)手機(jī)界面的亮度的 并不僅僅是某個(gè)app的亮度 也就是說這個(gè)亮度就是在你完全退出這個(gè)app后還是會(huì)保持的 所以當(dāng)我們不需要這個(gè)亮度繼續(xù)保持的時(shí)候 我們需要在app的代理方法里做些處理 :
//這個(gè)方法會(huì)在app失去激活狀態(tài)的時(shí)候調(diào)用 比如說程序進(jìn)入后臺(tái)
-
(void)applicationWillResignActive:(UIApplication *)application {
[[UIScreen mainScreen] setBrightness: 0.5];//0.5是自己設(shè)定認(rèn)為比較合適的亮度值
}```
//獲取當(dāng)前屏幕的亮度:
CGFloat *currentLight = [[UIScreen mainScreen] brightness];```
另外,屏幕的亮度調(diào)節(jié)只能在真機(jī)上看到效果 在模擬器上看不到效果
#####調(diào)節(jié)系統(tǒng)音量
調(diào)節(jié)系統(tǒng)音量有兩個(gè)方法:
######第一種:
使用前請(qǐng)導(dǎo)入庫 #import <MediaPlayer/MediaPlayer.h>
//這個(gè)默認(rèn)值是YES,為了突出我又刻意設(shè)置了一遍,設(shè)為NO之后,系統(tǒng)音量條是隱藏了,可是會(huì)彈出音量提示框
`_volumeView.showsVolumeSlider = YES;`
//通過設(shè)置frame來達(dá)到隱藏音量滑動(dòng)條
`[_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;
//默認(rèn)YES,這里為了突出,故意設(shè)置一遍
_volumeView.showsVolumeSlider = YES;
[_volumeView sizeToFit];
// [_volumeView setFrame:CGRectMake(-1000, -1000, 10, 10)];
// [self.view addSubview:_volumeView];//*****親測(cè),這行代碼是現(xiàn)實(shí)音量指示器的關(guān)鍵所在*****
[_volumeView userActivity];
}
-
(IBAction)changeVolume:(UISlider )sender {
/
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];
//This property is deprecated -- use MPVolumeView for volume control instead.
//在7.0以后蘋果反對(duì)使用此方法,建議用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; // 改變?cè)? "AVSystemController_AudioVolumeNotificationParameter" = "0.0625"; // 當(dāng)前值
"AVSystemController_UserVolumeAboveEUVolumeLimitNotificationParameter" = 0; 最小值
改變音量的通知
"AVSystemController_AudioCategoryNotificationParameter" = "Audio/Video"; // 音量改變
"AVSystemController_AudioVolumeChangeReasonNotificationParameter" = ExplicitVolumeChange; // 改變?cè)? "AVSystemController_AudioVolumeNotificationParameter" = "0.3"; // 當(dāng)前值
"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(@"音量改變 當(dāng)前值:%f",value);
}
}
第二種:
下面這種方法大家就不要試了,在7.0以后蘋果反對(duì)使用此方法,建議用MPVolumeView類。
使用前請(qǐng)導(dǎo)入庫 #import <MediaPlayer/MediaPlayer.h>
如果想單純的控制音量,則不推薦使用第二種方法。
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];
//This property is deprecated -- use MPVolumeView for volume control instead.
//在7.0以后蘋果反對(duì)使用此方法,建議用MPVolumeView
mpc.volume = 0; //0.0~1.0```
使用第二種方法會(huì)出現(xiàn)一個(gè)warning:提示這個(gè)API已經(jīng)在7.0之后廢棄掉了,但是依然可以使用。
這是我的寫的一個(gè)[Demo](https://github.com/SmallwolfiOS/BrightnessAndSound.git)
相關(guān)資料:
http://www.lxweimin.com/p/683f3f312a79
https://github.com/TieShanWang/GitDemo
https://github.com/yueshangfeng/iOS-1-
http://blog.csdn.net/qq_32010299/article/details/51313114