OS调整系统屏幕亮度
在iOS5.0以前,无法直接修改系统屏幕亮度,到了iOS5.0以后,苹果给开发者提供了相应的API,避免了之前间接调整屏幕亮度的假象,使之更加方便。
-
调整屏幕亮度相应的API
@property(nonatomic) CGFloat brightness NS_AVAILABLE_IOS(5_0) __TVOS_PROHIBITED;// 0 .. 1.0, where 1.0 is maximum brightness. Only supported by main screen.
-
使用方法
// 设置系统屏幕亮度 [UIScreen mainScreen].brightness = 0.5; // 或者 [[UIScreen mainScreen] setBrightness:0.5];
iOS调整系统媒体音量
首先导入
#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>
iOS确实有设置system volume的方法,但是该方法为private class,所以在这里就不多说了,以下为两种简单实现调整系统音量的方式:
-
MPVolumeView
-
说明
用这种方式修改会在指定区域生成一个音量条,它会保持与系统音量实时同步,但不可以用代码修改,只能由用户手动拖动音量条控制。 -
-
使用方式
-
- MPVolumeView跟系统音量同步显示
-
MPVolumeView *volume = [[MPVolumeView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:volume]; [volume sizeToFit];
-
-
MPMusicPlayerController
-
说明
这个类本身是用来播放音乐的,其中有一个volume属性可以直接设置,而且,它可以同步系统音量,所以可以结合UISlider来使用。 -
UISlider *slider = [[UISlideralloc]initWithFrame:CGRectMake(100,300, 200,50)];
[self.viewaddSubview:slider];
slider.maximumValue =1.0;
slider.minimumValue =0.0;
slider.backgroundColor = [UIColorpurpleColor];
//监听slider
[slider addTarget:selfaction:@selector(clickSlider:)forControlEvents:(UIControlEventValueChanged)];
-
使用方式
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer]; mpc.volume = value;
-
-(void)clickSlider:(UISlider *)slider{
_mpc.volume = slider.value;
NSLog(@"%f",slider.value);
}
//免提切换
传入yes 为免提功能 NO 为听筒功能
-(void) toggleSpeaker:(bool)bOpen
{
UInt32 route;
OSStatus error;
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
error = AudioSessionSetProperty (
kAudioSessionProperty_AudioCategory,
sizeof (sessionCategory),
&sessionCategory
);
route = bOpen?kAudioSessionOverrideAudioRoute_Speaker:kAudioSessionOverrideAudioRoute_None;
error = AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(route), &route);
}