文/腾讯优测研发工程师 吴宇焕

现在Android手机一般都会带有照相功能,有很多朋友就发现手机照相时快门声音很响,想关又关不掉。。。。。不过话说回来,静音拍照你想做啥?
来到主题上,因为网络上有很多关于“删除或修改快门声音文件是关闭快门声的方法”的内容,所以我就不赘述了。今天我想和大家说的是:在开发中,针对camera的静音功能我们会遇到哪些机型兼容问题?

从Google官方API中也没有明确的指出关于相机拍照时快门声音是如何控制的,关于shutter第一个参数API只是解释为在相机拍照的瞬间进行回调,并没有明确说明是否是对拍照声音的操作。

当调用Camera的takePicture方法进行拍照时,为了防止偷拍等行为,会发出快门拍照的声音,而且此声音无法通过调节音量进行关闭,但由于不同机型不同Rom的差别,使得各个厂商针对此声音的处理不同。
至此我总结了使用takePicture中ShutterCallback来控制拍照声音的三种情况:
1、当takePicture传入第一个参数ShutterCallback(ShutterCallback参数不为空)时,系统会发出快门拍照的声音。
例如HTC 3D EVO,因此这款手机的快门声音可以通过此方法进行控制。
2、无论是否传入ShutterCallback参数系统都没有快门拍照的声音。
例如LG P720手机就有此问题,此类手机问题比较严重,手机厂商自行修改了Rom,导致任何情况下调用takePicture方法进行拍照都没有声音,通过反编译系统照相机可以看出,系统照相机拍照声音是可以随意控制的,当需要声音时直接在应用中调用SoundPool发出拍照音效,否则静音处理。所以我们在设计应用时针对这类机型也可以自行控制拍照声音。
而步步高vivo Y1手机同样有此现象,但和LG不同的是,这款机型的厂商修改了Rom,把拍照声音的控制写在了HAL层中,调用声音的接口没有暴露出来,我们只能通过反射进行对声音的设置。
3、无论是否传入ShutterCallback参数系统都有快门拍照的声音。
例如华为Y220t,这类手机比较麻烦,通过反编译Framework层关于拍照声音是在硬件抽象层(HAL)实现的,所以应用开发无法通过代码控制拍照声音的播放,只能给以相应的提示告诉用户当前静音无效,拍照时会发出快门的声音。
综上所述,使用takePicture中ShutterCallback来控制快门声音时需要针对不同机型做不同处理。

那些年,我们在Android机型适配上遇到的坑丨之Camera拍照时快门咔嚓声相关推荐

  1. 腾讯优测-优社区干货精选 |  那些年,我们在Android机型适配上遇到的坑之Camera拍照时快门咔嚓声...

    文/腾讯优测研发工程师 吴宇焕 优测小优有话说: android机型适配的坑自然是不少,不想掉坑快来优测优社区~ 现在Android手机一般都会带有照相功能,有很多朋友就发现手机照相时快门声音很响,想 ...

  2. Android机型适配问题——Camera拍照时快门咔嚓声

    文/腾讯优测 吴宇焕 现在Android手机一般都会带有照相功能,有很多朋友就发现手机照相时快门声音很响,想关又关不掉.....不过话说回来,静音拍照你想做啥? 来到主题上,因为网络上有很多关于&qu ...

  3. 【Android适配问题集锦-相机类】Camera拍照时快门咔嚓声适配问题

    现在Android手机一般都会带有照相功能,有很多朋友就发现手机照相时快门声音很响,想关又关不掉.....不过话说回来,静音拍照你想做啥? 来到主题上,因为网络上有很多关于"删除或修改快门声 ...

  4. 腾讯优测-优社区干货精选 |安卓适配之Camera拍照时快门咔嚓声

    文/腾讯优测研发工程师 吴宇焕 优测小优有话说: android机型适配的坑自然是不少,不想掉坑快来优测优社区~ 现在Android手机一般都会带有照相功能,有很多朋友就发现手机照相时快门声音很响,想 ...

  5. Android 机型适配之百分比适配 ConstraintLayout

    Android 机型适配之百分比适配 ConstraintLayout 由于Android的品类繁杂,机型适配向来是一个难题,常见的通过LinearLayout+RelativeLayout的方式进行 ...

  6. Android机型适配之软键盘和输入法

    Android机型适配问题是不少Android开发人员转ios开发的原因,因为,Android机型实在是太多了,各大门派纷纷定制rom,碎片化相当严重.以下是我总结的一些些资料 一.软键盘显隐问题 定 ...

  7. [转]Android机型适配之痛

    Android平台的诞生为手机智能化的普及立下汗马功劳,但其最大的缺点也越来越凸显,那就是碎片化严重:设备繁多.品牌众多.版本各异,芯片.摄像头.分辨率不统一等等,这些都逐渐成为Android系统发展 ...

  8. Android 机型适配

    Android平台的诞生为手机智能化的普及立下汗马功劳,但其最大的缺点也越来越凸显,那就是碎片化严重:设备繁多.品牌众多.版本各异,芯片.摄像头.分辨率不统一等等,这些都逐渐成为Android系统发展 ...

  9. 腾讯Bugly干货分享:Android机型适配之痛

    原文地址:http://www.csdn.net/article/2015-09-08/2825645/1 一.个性化十足的Launcher 快捷方式虽然看起来只是一个很小的功能点,但是它涉及到的机型 ...

最新文章

  1. linux查看接口名,在linux下 怎么查看网络接口的名字? 网络接口的名字英文是什么呀?...
  2. mysql date_trunc_com.mysql.jdbc.MysqlDataTruncation: Data trunca...
  3. python基础---模块与包
  4. vue怎么取消按回车下拉框自动下拉_八月更新第二版,小视频自动竖屏全屏播放,失效校验再次升级!...
  5. python编程题三
  6. 用C#快速往Excel写数据
  7. js ajax上传图片到服务器
  8. 依存句法分析的任务以及形式化定义
  9. 北师大计算机组成原理离线作业,北师大网络教育 离线作业 计算机组成原理(一、二、三)...
  10. 润乾V5打印完成后事务处理
  11. java thread 几个状态_Java-Thread 线程的几种状态
  12. 编译安装sqlite-3.6.20【原创】
  13. vue保存页面的值_vue前端页面跳转参数传递及存储
  14. 1 CentOS下磁盘LVM扩容
  15. STL迭代器iterator
  16. maven项目转换成dynamic项目
  17. windowsxp中linq 指定的转换无效_.NET Core 3.0 中的新变化
  18. 【转】android gravity属性 和 weight属性
  19. Oracle备份还原实践
  20. java文件的打包和解包,Java包装类:什么是包装类对象,什么是打包和解包,当编译遇到自动打包和解包时会发生什么?...

热门文章

  1. Linux gpasswd命令用法详解:把用户添加进组或从组中删除(转)
  2. python基础教程期末考试题_智慧树Python程序设计基础期末教程考试完整答案
  3. 一个简易的会员管理系统(C语言)
  4. 四轴飞行器MiniFly学习笔记01——飞行姿态
  5. 压力变送器在选型时需要掌握哪些选型技巧?
  6. 详述ViewState用法
  7. python字典拷贝_Python字典(dict)拷贝
  8. BZOJ4921 互质序列
  9. 阿里十年资深程序员吐血总结之Java代理模式
  10. Seata实战-分布式事务简介及demo上手