本文共 1845 字,大约阅读时间需要 6 分钟。
在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];
首先导入
#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>
iOS确实有设置system volume的方法,但是该方法为private class,所以在这里就不多说了,以下为两种简单实现调整系统音量的方式:
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);
}
转载地址:http://xxevn.baihongyu.com/