如何在Android上播放原生的相机声音

我想玩相机预览捕捉本机相机快门声音剪辑。 我指的是调用takePicture()时播放的声音剪辑。
我怎么能? 有人可以走过我的步骤?

Solutions Collecting From Web of "如何在Android上播放原生的相机声音"

这个资源解释了如何播放audio文件: https : //developer.android.com/guide/topics/media/index.html

您可能必须提供自己的快门声效果。

您可以使用MediaActionSound类(可从API 16获得)。 例如:

 MediaActionSound sound = new MediaActionSound(); sound.play(MediaActionSound.SHUTTER_CLICK); 

如果系统文件在那里,你可以像这样使用它:

 public void shootSound() { AudioManager meng = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE); int volume = meng.getStreamVolume( AudioManager.STREAM_NOTIFICATION); if (volume != 0) { if (_shootMP == null) _shootMP = MediaPlayer.create(getContext(), Uri.parse("file:///system/media/audio/ui/camera_click.ogg")); if (_shootMP != null) _shootMP.start(); } } 

您可能需要使用SoundPool

 SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_NOTIFICATION, 0); int shutterSound = soundPool.load(this, R.raw.camera_click, 0); 

然后播放声音

 soundPool.play(shutterSound, 1f, 1f, 0, 0, 1); 

查看http://developer.android.com/reference/android/media/SoundPool.html了解参数。

您需要在res / raw项目中的一个名为camera_click.ogg的媒体文件。 如果您的项目是在Apache许可证下获得许可的,您应该可以使用Android默认声音,该声音可以从Android开放源代码项目的以下位置获得(frameworks / base / data / sounds / effects / camera_click.ogg)。 如果你的项目没有获得Apache许可,我不知道你是否可以使用它。 我不是律师。