Android 具有自定义快门声音的照相机
我有一个定制的Android 具有自定义快门声音的照相机,android,android-camera,Android,Android Camera,我有一个定制的摄像头实现,当使用API 10拍摄照片时,我希望有自己的声音。我有下面的代码,它不播放我的声音,但它也播放默认的相机声音,我只需要播放我的相机声音,而不是默认的 //takes picture mCamera.takePicture(myShutterCallback, myPictureCallback_RAW, myPictureCallback_JPG); ShutterCallback myShutterCallback = new ShutterCal
摄像头
实现,当使用API 10拍摄照片时,我希望有自己的声音。我有下面的代码,它不播放我的声音,但它也播放默认的相机声音,我只需要播放我的相机声音,而不是默认的
//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();
}
};
试试这个
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()
之前执行上述操作,然后在onShutter()上调用media.start()
然后在onPictureTaken()
上执行以下操作
public void onPictureTaken(byte[] data, Camera camera) {
if (isVolumeChanged){
audio.setStreamVolume(AudioManager.STREAM_SYSTEM,currentVolume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
}
}
希望这有帮助