Подтвердить что ты не робот

Как отключить звук затвора камеры на телефоне Android

Есть ли способ отключить звук затвора камеры в 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 p1000 и Sony Experia R800i, он не работал. Есть ли другая работа?

4b9b3361

Ответ 1

попробуйте этот код:

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(), так как существует известная проблема в android ниже версии 2.3..

Ответ 2

Так как уровень API 17 (4.2) есть правильный, надежный способ сделать это, если производитель телефона поддерживает его.

Сначала определите, можно ли отключить звук затвора программно, а затем отключить его

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

Вам нужно установить id для соответствующего идентификатора камеры в вызове Camera.getCameraInfo или отключить их все в цикле от 0 до Camera.getNumberOfCameras() - 1.

Документация разработчика рекомендует воспроизводить другой звук вместо звука затвора, но вы не обязаны.

Ответ 3

Метод, который вы уже опубликовали, на самом деле является лучшим из тех, которые я могу найти/подумать. Причина, по которой он не работает, заключается в том, что он не должен. Фактически, во многих местах (большая часть Европы, Японии, частях США и т.д.) Это незаконно, чтобы отключить звук затвора. Это так, что вы не можете делать снимки в местах, где вы не должны, и поэтому вы не фотографируете людей без их разрешения и так далее. Это просто выстрел в темноте, что производитель намеренно пытался убедиться, что вы не можете сделать это независимо от того, что (хотя технически всегда есть способ), но когда вы думаете об этом, логически нет причин, по которым ваш код не должен работать правильно? Это простой, базовый, имеет смысл. В любом случае, есть много приложений для скрытой камеры, и камера + ICS фактически построена на стандартной ICS-камере, но имеет опцию Silent Shutter, поэтому она должна быть возможной.

Ответ 4

есть телефоны, которые воспроизводят звук затвора самостоятельно. В этом случае кажется невозможным отключить звук затвора.

Ответ 5

Один сумасшедший способ, я могу думать, это получить разрешение отключить телефон.