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

发布时间 - 2026-01-10 22:01:11    点击率:

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

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的使用方法  # 小编  # 有一  # 在此  # 则是  # 这段  # 给大家  # 点击下载  # 如图  # 比较多  # 所述  # 给我留言  # 感谢大家  # 归功于  # 音乐播放  # 出现错误  # 疑问请  # 有任何  # 最亮  # 文件转换成  # 变暗 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  如何在万网利用已有域名快速建站?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  高端建站三要素:定制模板、企业官网与响应式设计优化  如何生成腾讯云建站专用兑换码?  如何挑选高效建站主机与优质域名?  简单实现jsp分页  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  北京的网站制作公司有哪些,哪个视频网站最好?  JavaScript Ajax实现异步通信  zabbix利用python脚本发送报警邮件的方法  EditPlus中的正则表达式实战(5)  网站页面设计需要考虑到这些问题  浅析上传头像示例及其注意事项  Laravel如何使用Blade组件和插槽?(Component代码示例)  常州企业网站制作公司,全国继续教育网怎么登录?  javascript读取文本节点方法小结  如何基于PHP生成高效IDC网络公司建站源码?  Laravel如何实现API版本控制_Laravel版本化API设计方案  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  如何在Windows服务器上快速搭建网站?  移动端脚本框架Hammer.js  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何快速生成专业多端适配建站电话?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  js实现点击每个li节点,都弹出其文本值及修改  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  如何快速重置建站主机并恢复默认配置?  Laravel如何处理文件下载请求?(Response示例)  Firefox Developer Edition开发者版本入口  如何在腾讯云免费申请建站?  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  个人网站制作流程图片大全,个人网站如何注销?  如何在阿里云ECS服务器部署织梦CMS网站?  如何在企业微信快速生成手机电脑官网?  如何制作一个表白网站视频,关于勇敢表白的小标题?  PythonWeb开发入门教程_Flask快速构建Web应用  网易LOFTER官网链接 老福特网页版登录地址  制作企业网站建设方案,怎样建设一个公司网站?