相机具有自定义快门声音

时间:2013-07-13 16:48:28

标签: android android-camera

我有一个自定义camera实现,我希望在使用API​​ 10拍摄照片时拥有自己的声音。我有以下代码play my sound,但它也会播放默认值相机声音,我只需要播放我的相机声音而不是默认声音。

   //takes picture
   mCamera.takePicture(myShutterCallback, myPictureCallback_RAW, myPictureCallback_JPG);

   ShutterCallback myShutterCallback = new ShutterCallback() {

    @Override
    public void onShutter() {
        MediaPlayer.create(SecondCamera.this,R.raw.camera_click).start();
    }
};

1 个答案:

答案 0 :(得分:7)

试试这个,

if (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1){
      camera.enableShutterSound(false);

}
else{
        AudioManager audio= (AudioManager)this.getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
        currentVolume=audio.getStreamVolume(AudioManager.STREAM_SYSTEM);            
        audio.setStreamVolume(AudioManager.STREAM_SYSTEM, 0,   AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
        MediaPlayer media= MediaPlayer.create(SecondCamera.this,R.raw.camera_click);
        media.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
        isVolumeChanged=true;           
     }

onShutter()之前执行上述操作,然后在media.start()

上致电onShutter()

然后在onPictureTaken()执行以下操作。

public void onPictureTaken(byte[] data, Camera camera) {


        if (isVolumeChanged){
            audio.setStreamVolume(AudioManager.STREAM_SYSTEM,currentVolume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
        }
    }      

希望这有助于!!!!!