如何在Android中更改默认快门声音?

时间:2012-01-18 07:59:39

标签: android audio android-camera

有没有办法在Android中更换相机快门声?我想更换快门声,相机拍照时拍摄的声音,以及代码中的其他内容。

我使用此代码在拍照之前使手机静音,并在之后取消静音:

AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true);

我更愿意将声音替换为可由用户动态设置的其他.mp3.ogg

我知道如果您有根电话,可以替换该文件。这不是我的应用程序的解决方案。

1 个答案:

答案 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音频播放类(如音轨)播放音频文件。