2012-10-25 6 views
9

Ich möchte Kamera Auslöser Sound programmgesteuert wiedergeben. Ich verwende kein ShutterCallback, das diesen Sound automatisch wiedergibt, also muss ich es auf andere Weise tun. Wer kennt die Lösung?Android: Play Kamera Auslöser Ton programmgesteuert

+0

Duplizieren von http://stackoverflow.com/q/2364892/1321873 – Rajesh

Antwort

7

seine Ressource erklärt, wie Audio-Dateien

http://www.vogella.com/articles/AndroidMedia/article.html

Sie werden spielen wahrscheinlich haben Sie Ihre eigenen Auslösetons bieten.

Wenn die Systemdatei ist, können Sie es wie folgt verwenden:

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(); 
    } 
} 
+0

Das ist eine schöne Lösung, danke. – mbz

11

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

Respekt Vibrieren/Silent-Modus in Android.