全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)

如图,左侧上下滑动改变亮度,右侧上下滑动改变音量。

1.改变屏幕亮度

 //获得当前屏幕亮度
  light = [UIScreen mainScreen].brightness;
  light = 0.5f;
  //直接赋值或者使用set方法皆可
  [UIScreen mainScreen].brightness = light;

2.改变系统音量

使用的比较多的就是通过MPMusicPlayerController来改变系统音量,主要归功于MPMusicPlayerController的音量和系统的同步。

MPMusicPlayerController *mpVC = [MPMusicPlayerController applicationMusicPlayer];
//获得系统当前音量
voice = _mpVC.volume;
voice = 0.5f;
//改变系统音量
_mpVC.volume = voice;

3.滑动响应方法

- (void)leftSwipGes:(UIPanGestureRecognizer *)leftSwip
{
  //滑动方法获取到当前位置的y坐标
  leftCurrentY = [leftSwip translationInView:leftView].y;
  NSLog(@"left");
  //当前坐标大于上一次移动的坐标,为向下滑动
  if (leftCurrentY > leftLastY) {
    if (light > 0) {
      //向下滑动屏幕变暗,亮度下降
      light = light - 0.01;
    }
    else{
      //当亮度为0时固定为0,禁止为负值
      light = 0;
    }
  }
  else
  {
    if (light < 1) {
      //向上滑动亮度增加
      light = light + 0.01;
    }
    else{
      //当亮度为1时固定为1,禁止大于1
      light = 1;
    }
  }
  //设置屏幕亮度
  [UIScreen mainScreen].brightness = light;
  //当前位置的上一次移动的位置y坐标
  leftLastY = leftCurrentY;
}
//此处除参数外原理一样,不再额外注释
- (void)rightSwipGes:(UIPanGestureRecognizer *)rightSwip
{
  NSLog(@"right");
  rightCurrentY = [rightSwip translationInView:rightView].y;
  if (rightCurrentY > rightLastY) {
    if (voice > 0) {
      voice = voice - 0.01;
    }
    else{
      voice = 0;
    }
  }
  else
  {
    if (voice < 1) {
      voice = voice + 0.01;
    }
    else{
      voice = 1;
    }
  }
  //设置系统音量
  _mpVC.volume = voice;
  rightLastY = rightCurrentY;
}

4.AVAudioPlayer简单运用

//从budle路径下读取音频文件,这个文件名是你的歌曲名字,mp3是你的音频格式
  NSString *string = [[NSBundle mainBundle] pathForResource:@"夜空中最亮的星" ofType:@"mp3"];
  NSString *playUrl = [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //转码成UTF-8 否则可能会出现错误
  //把音频文件转换成url格式
  NSURL *url = [NSURL URLWithString:playUrl];
  //初始化音频类 并且添加播放文件
  _avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
  [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
  //设置初始音量大小
  _avAudioPlayer.volume = voice;
  //设置音乐播放次数 -1为一直循环
  _avAudioPlayer.numberOfLoops = -1;
  //预播放
  [_avAudioPlayer prepareToPlay];
  [_avAudioPlayer play];

这里有一大坑,一定要设置后台播放,否则是不会播放的,下面这段代码

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];

最后附上Demo:点击下载

以上所述是小编给大家介绍的iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# ios  # 滑动控制屏幕亮度和音量  # avaudioplayer  # iOS使用Masonry时进行动画操作方法  # 详解ios中scrollView上使用masonry  # 深入理解IOS控件布局之Masonry布局框架  # iOS App开发中Masonry布局框架的基本用法解析  # IOS自适配利器Masonry使用指南  # iOS masonry的使用方法  # 小编  # 有一  # 在此  # 则是  # 这段  # 给大家  # 点击下载  # 如图  # 比较多  # 所述  # 给我留言  # 感谢大家  # 归功于  # 音乐播放  # 出现错误  # 疑问请  # 有任何  # 最亮  # 文件转换成  # 变暗 


相关文章: ,在苏州找工作,上哪个网站比较好?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  如何在腾讯云服务器快速搭建个人网站?  建站VPS选购需注意哪些关键参数?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何用低价快速搭建高质量网站?  独立制作一个网站多少钱,建立网站需要花多少钱?  如何通过万网虚拟主机快速搭建网站?  常州自助建站工具推荐:低成本搭建与模板选择技巧  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  建站之星如何取消后台验证码生成?  智能起名网站制作软件有哪些,制作logo的软件?  建站之星代理费用多少?最新价格详情介绍  html制作网站的步骤有哪些,iapp如何添加网页?  定制建站方案优化指南:企业官网开发与建站费用解析  建站之星后台管理如何实现高效配置?  如何在阿里云部署织梦网站?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  ,sp开头的版面叫什么?  如何通过WDCP绑定主域名及创建子域名站点?  如何通过.red域名打造高辨识度品牌网站?  建站之星在线版空间:自助建站+智能模板一键生成方案  php json中文编码为null的解决办法  家庭建站与云服务器建站,如何选择更优?  如何选择香港主机高效搭建外贸独立站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  制作销售网站教学视频,销售网站有哪些?  常州自助建站费用包含哪些项目?  如何用美橙互联一键搭建多站合一网站?  如何正确选择百度移动适配建站域名?  如何在景安服务器上快速搭建个人网站?  如何在阿里云虚拟主机上快速搭建个人网站?  ,购物网站怎么盈利呢?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  油猴 教程,油猴搜脚本为什么会网页无法显示?  广州建站公司哪家好?十大优质服务商推荐  实例解析angularjs的filter过滤器  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  如何将凡科建站内容保存为本地文件?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  建站之星24小时客服电话如何获取?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何通过虚拟主机快速完成网站搭建?  制作网站公司那家好,网络公司是做什么的?  建站之星上传入口如何快速找到?  音乐网站服务器如何优化API响应速度?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  公众号网站制作网页,微信公众号怎么制作? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。