iOS 修改屏幕亮度和系统音量

调节屏幕亮度

方法:

[[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)


相关资料:
//www.greatytc.com/p/683f3f312a79
https://github.com/TieShanWang/GitDemo
https://github.com/yueshangfeng/iOS-1-
http://blog.csdn.net/qq_32010299/article/details/51313114
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Media Playback Android多媒体框架包涵了对播放多种通用媒体的类型的支持,所以你可以很容易的集成...
    VegetableAD阅读 4,402评论 0 0
  • 尊重知识,转发请注明出处:iOS流媒体开发之二:滑动手势控制音量、亮度和进度 概要 看到文章的标题,小伙伴们大概会...
    张云龙阅读 13,672评论 26 94
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,764评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,236评论 4 61
  • 今天中午收到一条短信,说我购买了1.5G的流量包。然而,这并不是我自己购买的,于是立刻拨打客服电话咨询一下到底是怎...
    薛定饿着猫阅读 1,865评论 0 0