Android Camera快门音静音问题

android4.2之后Camera的framework层Camera.java里面加上了enable或者disable快门音的接口:

enableShutterSound(boolean enabled)

通过在app里调用enableShutterSound(true)或者enableShutterSound(false)就可以实现拍照的时候开启或者关闭快门音。

但是需要注意的是:很多机器是强制快门音的,也就是说你在app里调用上述接口也许根本不起作用,你明明enableShutterSound(false)了,但是拍照的时候快门音照样响起,原因在于烧制的系统版本里面有一个值被写死了:ro.camera.sound.forced = 1

可以adb shell进到device里面,getprop ro.camera.sound.forced如果得到是0,说明快门音可以被静音处理,调用enableShutterSound(false)能起作用;如果是1,说明快门音被强制设置了,这时调用enableShutterSound(false)就不起作用。

要想让Camera的快门音能够被静音,就需要在编译供烧机的系统版本之前,将ro.camera.sound.forced设成0,各家硬件平台定义这个值的地方可能稍有差异,但是大致都在以下位置:

(1)Intel 一般在 vendor/intel/common/init.common.rc里面

(2)qcom 一般在device/qcom/YOURPLATFORM/system.prop里面

(3)Samsung 一般在device/YOURPROJECT/system.prop里面

(4)MTK 一般在mediatek/config/YOURPROJECT/system.prop里面

原文地址:https://www.cnblogs.com/wuqinghua/p/3112502.html