13

プログラムでカメラのシャッター音を鳴らしたい。そのサウンドを自動的に再生するShutterCallbackを使用していないので、別の方法で再生する必要があります。誰もが解決策を知っていますか?

4

2 に答える 2

23

API 16 の MediaActionSound 。

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;
    }

Android のバイブレーション/サイレント モードを尊重します。

于 2016-08-19T10:59:08.403 に答える
8

彼のリソースは、オーディオファイルの再生方法を説明しています

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();
    }
}
于 2012-10-25T13:58:54.837 に答える