有没有办法在Android中更换相机快门声?我想更换快门声,相机拍照时拍摄的声音,以及代码中的其他内容。
我使用此代码在拍照之前使手机静音,并在之后取消静音:
AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true);
我更愿意将声音替换为可由用户动态设置的其他.mp3
或.ogg
。
我知道如果您有根电话,可以替换该文件。这不是我的应用程序的解决方案。
答案 0 :(得分:2)
声音从任何设备(libcameraservice.so)的本机层中的cameraservice播放。因此,播放声音的任何修改都必须在这里完成。
事后看来:
上述库中的声音播放部分是设备相机快门回叫的结果。这会检查音量索引,因此在将设备设置为静音时不会播放任何声音。当事件稍后转移到app层时,你实现的Camera.ShutterCallback(参考http://developer.android.com/reference/android/hardware/Camera.html#takePicture(android.hardware.Camera.ShutterCallback,android.hardware.Camera.PictureCallback,android.hardware.Camera.PictureCallback,android.hardware.Camera.PictureCallback)是被调用,因此可以取消静音音频管理器并使用Android音频播放类(如音轨)播放音频文件。