我想以编程方式播放相机快门声音。我没有使用ShutterCallback,它会自动播放那个声音,所以我需要用其他方式来做。有人知道解决办法吗?
lsmepo6l1#
MediaActionSound来自API 16。
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); switch( audio.getRingerMode() ){ case AudioManager.RINGER_MODE_NORMAL: MediaActionSound sound = new MediaActionSound(); sound.play(MediaActionSound.SHUTTER_CLICK); break; case AudioManager.RINGER_MODE_SILENT: break; case AudioManager.RINGER_MODE_VIBRATE: break; }
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
switch( audio.getRingerMode() ){
case AudioManager.RINGER_MODE_NORMAL:
MediaActionSound sound = new MediaActionSound();
sound.play(MediaActionSound.SHUTTER_CLICK);
break;
case AudioManager.RINGER_MODE_SILENT:
case AudioManager.RINGER_MODE_VIBRATE:
}
尊重Android中的振动/静音模式。
tjvv9vkg2#
他的资源解释了如何播放音频文件http://www.vogella.com/articles/AndroidMedia/article.html您可能需要提供自己的快门音效。如果系统文件在那里,你可以这样使用它:
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(); }}
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();
au9on6nz3#
你可以使用这个函数:
private fun shuttleVolume() { val sound = MediaActionSound() sound.play(MediaActionSound.SHUTTER_CLICK)}
private fun shuttleVolume() {
val sound = MediaActionSound()
sound.play(MediaActionSound.SHUTTER_CLICK)
样本代码:
imageCaptureButton.setOnClickListener { shuttleVolume() takePhoto()}
imageCaptureButton.setOnClickListener {
shuttleVolume()
takePhoto()
在您需要时调用它,例如在拍照之前!
3条答案
按热度按时间lsmepo6l1#
MediaActionSound来自API 16。
尊重Android中的振动/静音模式。
tjvv9vkg2#
他的资源解释了如何播放音频文件
http://www.vogella.com/articles/AndroidMedia/article.html
您可能需要提供自己的快门音效。
如果系统文件在那里,你可以这样使用它:
au9on6nz3#
你可以使用这个函数:
样本代码:
在您需要时调用它,例如在拍照之前!