2012-04-30 22 views
19

Android(ルート端末ではない)でカメラシャッター音をミュートする方法はありますか?アンドロイド携帯電話でカメラシャッター音をミュートするには

写真を撮るとき、私は私のオーディオの音をミュートするために、このコードを使用します。

AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    int streamType = AudioManager.STREAM_SYSTEM; 
    mgr.setStreamSolo(streamType, true); 
    mgr.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
    mgr.setStreamMute(streamType, true); 

私は音とサイレント電話をミュート。

mCamera.takePicture(null, null, photoCallback); 

それはHTC HERO, HTC Desire, Motorola ME860, MotoA953に取り組んでいます

写真を撮ります。しかし、私がSamsung Tab p1000Sony Experia R800iでテストしたところ、うまくいきませんでした。何か他の仕事はありますか?

+0

http://wiki.dandascalescu.com/howtos/android#How_do_I_disable_the_camera_shutter_sound.3F – MAC

+3

これら二つのリンクをたどって、これを参照してください。 http://stackoverflow.com/questions/8906909/how-do-i-で、アンドロイド変更デフォルト・シャッター音・ http://stackoverflow.com/questions/9106939/android-camera-takepicture-possible-to-disable-shutter-sound-and-preview-surfa –

+1

ましたシャッターコールバックをnullに設定しようとしていますか?どのように写真を撮っていますか? – styler1972

答えて

2

自分でシャッター音を鳴らす電話があります。この場合、シャッター音を無効にすることはできないようです。

1

私が考えることができる1つの狂気の方法は、電話をミュートする許可を得ることです。

+0

これを行うにはどうすればよいですか?私はすでに電話を静かにしましたが、まだ動作していません。 – user430926

3

あなたがすでに投稿した方法は、実際には私が見つけて考えることができる最良の方法です。それがうまくいかない理由は、それが想定されていないからです。実際、多くの場所(ヨーロッパ、日本、アメリカの一部など)では、シャッター音を無効にすることは違法です。これは、あなたが想定していない場所で写真を撮ることができないため、許可なく人物を撮影しないなどです。それは暗闇の中のただのショットです。メーカーが意図的にあなたが何を(たとえ技術的にはいつも方法がありますが)それをすることができないことを確かめようとしましたが、それについて考えるとき、論理的にはあなたのコードはうまくいく?シンプルで、基本的で、理にかなっています。とにかくそこには多くの静かなカメラアプリがあり、カメラ+ ICSは実際にはデフォルトのICSカメラに組み込まれていますが、サイレントシャッターオプションがありますので、可能でなければなりません。

+0

私は韓国ではシャッター音が必要であることについての参考文献(https://www.privacyinternational.org/reports/south-korea/ii-surveillance-policy)が見つかりましたが、米国については何も見つかりませんでした。米国の法的地位を説明している文書を教えてください。 AFAICT [この提案された法案](http://www.govtrack.us/congress/bills/111/hr414)は決して通過しませんでした。 – cberzan

7

このコードを試してみてください。バージョン2.3以下のアンドロイド上の既知の問題があるので

AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
if(TextUtils.equals(muteMode, "mute")){ 
    manager.setStreamVolume(AudioManager.STREAM_SYSTEM, 0 , AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE); 
}else{ 
    manager.setStreamVolume(AudioManager.STREAM_SYSTEM, manager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM) , AudioManager.FLAG_ALLOW_RINGER_MODES); 
} 
//here continue to take picture... 

はAudioManager.setStreamMute()メソッドを使用していない...

+0

これは2.3.3で私にとっては機能しません – wired00

+0

2.3.3で動作しますが、takePicture()を呼び出す前にミュートコールを行い、ShutterCallback.onShutter()でミュートを解除する必要があります –

+1

muteModeとは何ですか? –

5

APIレベル17(4.2)のであり携帯電話の製造元がサポートしている場合は、これを行う適切で信頼できる方法です。あなたがプログラム的にシャッター音を無効にすることができるかどうか

まず、検出し、それは

Camera.CameraInfo info = new Camera.CameraInfo(); 
Camera.getCameraInfo(id, info); 
if (info.canDisableShutterSound) { 
    mCamera.enableShutterSound(false) 
} 

あなたはCamera.getCameraInfoへの呼び出しで適切なカメラIDにIDを設定し、または、それらのすべてを無効にする必要があります無効にしますループ0からCamera.getNumberOfCameras() - 1

developer documentationは、シャッター音の代わりに別のサウンドを再生することをお勧めしますが、義務はありません。

関連する問題