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里面