前段时间一朋友需要实现该功能,其实实现起来不难,下面是实现效果

提示:模拟器看不到效果,需要真机才能看到效果

[简书查看demo代码下载地址]

闪光灯的开启与关闭

//开启闪光灯
- (void)openFlash{AVSession = [[AVCaptureSession alloc]init];device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];[device lockForConfiguration:nil];//此处以一定要调用这个方法不然程序运行到这里会崩溃[device setTorchMode:AVCaptureTorchModeOn];[device setFlashMode:AVCaptureFlashModeOn];[device unlockForConfiguration];[AVSession startRunning];}
//关闭闪光灯
- (void)closeFlash{AVSession = [[AVCaptureSession alloc]init];device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];[device lockForConfiguration:nil];[device setTorchMode:AVCaptureTorchModeOff];[device setFlashMode:AVCaptureFlashModeOff];[device unlockForConfiguration];[AVSession stopRunning];AVSession = nil;    //置空device = nil;       //置空
}

屏幕亮度改变

- (void)changeScreenBright:(float)value
{if (self.screnSwitch.on) {[[UIScreen mainScreen] setBrightness:value];//修改屏幕亮度}}

音乐频率计算

_vodioTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(vodiotimerFire:) userInfo:nil repeats:YES];[_vodioTimer fire];//定时器事件
- (void)vodiotimerFire:(NSTimer *)sender{self.musicPlayer.meteringEnabled = YES;[self.musicPlayer updateMeters];float   level;                // The linear 0.0 .. 1.0 value we need.float   minDecibels = -80.0f; // Or use -60dB, which I measured in a silent room.float   decibels    = [self.musicPlayer averagePowerForChannel:0];if (decibels < minDecibels){level = 0.0f;}else if (decibels >= 0.0f){level = 1.0f;}else{float   root            = 2.0f;float   minAmp          = powf(10.0f, 0.05f * minDecibels);float   inverseAmpRange = 1.0f / (1.0f - minAmp);float   amp             = powf(10.0f, 0.05f * decibels);float   adjAmp          = (amp - minAmp) * inverseAmpRange;level = powf(adjAmp, 1.0f / root);}/* level 范围[0 ~ 1], 转为[0 ~120] 之间 */NSInteger newLevel = (NSInteger)(level * 120);NSLog(@"level== %d",newLevel);if (newLevel == 0) {self.oldLevel = newLevel;}NSInteger spaceLevel = newLevel - self.oldLevel;if (abs(spaceLevel) >= 10) {self.oldLevel = newLevel;if (self.lampSwitch.on) {[self openFlash];[self closeFlash];}float currentBright = 1- (newLevel / 120.0);[self changeScreenBright:currentBright];} else {[self changeScreenBright:self.defaultScreenBright];}}

[简书查看demo代码下载地址]

iOS 根据音乐来变动闪光灯和闪屏相关推荐

  1. iOS 隐藏导航栏整个视图上移闪屏问题

    2019独角兽企业重金招聘Python工程师标准>>> 在iOS开发中,特别是一些首页展示上要去掉导航栏(UINavigationBar). 最简单的办法在- (void)viewW ...

  2. iOS App图标和启动画面(闪屏)尺寸

    原文链接: http://www.jianshu.com/p/adpKye 注意:iOS所有图标的圆角效果由系统生成,给到的图标本身不能是圆角的. 1. 桌面图标 (app icon) for iPh ...

  3. Unity 设置安卓和ios平台的闪屏页(适合新手)

    前言 本人之前在游戏发行团队做安卓聚合sdk方面的相关工作,因公司内部优化去了游戏研发团队,负责Android和Ios相关的游戏接入工作.通俗的讲只要跟安卓和IOS方面有关的任何事情都是我来搞,包括游 ...

  4. iOS端(腾讯Bugly)闪退异常上报扑获日志集成与使用指南

    app已经上架并且有三次更新版本,今天市场部和顾客约谈时,发现顾客的iphone 6 plus iOS 9.0.2上运行app点击登录按钮时直接闪退,无法进入app里,这个问题还是第一次遇到,我下载了 ...

  5. ios设置音乐audio自动播放

    因为audio标签的自动播放:autoplay.在ios系统中不能自动播放,此时需要设置,在进入页面自动播放音乐. 第一步,先引入js微信 <script src="js/jweixi ...

  6. iOS开发视频背景及播放闪屏处理,卡顿处理

    视频播放方式 iOS开发视频播放,四种方法,MPMoviePlayerController,MPMoviePlayerViewController,AVPlayer,AVPlayerViewContr ...

  7. vue 刷新界面 解决闪屏和iOS失效问题

    vue 刷新界面 解决闪屏和iOS失效问题 vue中: 1 this.$router.go(0).这种方法虽然代码很少,只有一行,但是体验很差.页面会一瞬间的白屏,体验不是很好,关键是 在ios系统中 ...

  8. html select ios 闪屏,移动端常见的兼容性问题.md

    # 移动端常见的兼容性问题 ###### 1. meta 基础知识点如下 ``` // 启动或禁用自动识别页面中的电话号码 // 启动或禁用自动识别邮箱地址 // 设置 Web 应用是否以全屏模式运行 ...

  9. IOS解决闪屏无效LuanchImage启动动画设置加载广告闪屏图

    IOS闪屏动画LuanchImage设置无效 设置Launch Image无效 其它方法 转载请标明出处: https://dujinyang.blog.csdn.net/article/detail ...

最新文章

  1. Spark读取MySQL中的数据为DataFrame
  2. mybatis学习6复杂查询之一对多的处理
  3. pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存
  4. ISE如何封装与使用IP —— 使用ngc文件与仅包含端口的v文件
  5. ios图片放大之后如何不模糊_图片怎样放大后不模糊 图片放大不失真的方法步骤...
  6. 【算法设计与数据结构】为何程序员喜欢将INF设置为0x3f3f3f3f?(转)
  7. 浅谈C#中的延“.NET研究”迟加载(2)——善用virtual
  8. 【转】HTTP请求中的form data和request payload的区别
  9. 电影推荐系统 python简书_电影推荐系统:TMDB 5000 Movie Dataset(一)
  10. Java 基础知识总结—String 类
  11. 怎么对文件夹名称进行编号排序
  12. MapReduce中Shuffle机制的学习案例——房屋租赁信息
  13. 深入理解Linux进程调度(0.4)
  14. python 常用库收集
  15. php开启curl,给PHP安装和开启curl扩展
  16. 左连接(LEFT JOIN)实例
  17. 软件测试常用缩写(uv、pv、dau...):
  18. 手机号码归属地查询 - 一刀工具
  19. 家族企业“五大”传承之困
  20. 《go语言圣经》习题答案-第5章

热门文章

  1. Windows10开机任务栏资源管理器卡死
  2. Qt编译报错 LNK2019:无法解析的外部符号
  3. 视频回顾 | 当我们在聊“弹性算力如何赋能XR行业”时,我们在聊什么?
  4. 2012,网络营销步入多方位营销时代
  5. 凤凰要和锦觅共赴鸿蒙,《香蜜》中凤凰一番话,成情侣之间的誓言,网友:锦觅爱他的原因...
  6. 成信大ENVI_IDL第三周课堂内容1:读取OMI数据(HDF5文件)以及输出+解析
  7. 爬虫学习笔记(五)——VMGIRLS唯美小姐姐的图片不让爬了,怎么办?
  8. jquery为什么用$符号做为关键符号
  9. 销售人员进行目标客户确认 销售人员定位目标客户
  10. Python - 微信支付开发系列之一 - 辅助函数