Cómo silenciar el sonido del obturador de la cámara en el teléfono Android
¿Hay alguna manera de silenciar el sonido del obturador de la cámara en Android (teléfono no enraizado)?
Yo uso este código para silenciar mi sonido de audio al tomar la imagen:
- Extraer todos los marcos de video en Android
- La cámara Motorola Android 2.2 ignora el parámetro EXTRA_OUTPUT
- Android - Cómo utilizar la cámara getSupportedPreviewSizes () para la orientación vertical
- Convertir QVideoFrame directamente a QPixmap
- Procesamiento de datos de la vista previa de la cámara con Android L y Camera2 API
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);
Mudo el sonido y silencio el teléfono.
mCamera.takePicture(null, null, photoCallback);
Luego toma la foto
Está trabajando en HTC HERO, HTC Desire, Motorola ME860, MotoA953
. Pero cuando lo probé en Samsung Tab p1000
y Sony Experia R800i
, no funciona. ¿Hay algún otro trabajo alrededor?
- Cámara android cámara2 manejar zoom
- Uso de surfaceView para capturar un video
- Girar rápidamente el teléfono 180 grados, la vista previa de la cámara gira al revés
- ¿Puedo usar setProgress para cambiar una barra de búsqueda programáticamente?
- android - utiliza la cámara desde el servicio de fondo
- Android - Cómo iniciar la grabación de vídeo automáticamente cuando se llama a la cámara intención
- Tome la foto con la intención de la cámara y guárdela en el archivo
- Android: Superposición en la vista previa de la cámara Android
Prueba este código:
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...
No utilice el método AudioManager.setStreamMute () ya que hay un problema conocido en android debajo de la versión 2.3.
Ya que el API nivel 17 (4.2) existe una forma adecuada y confiable de hacerlo, si el fabricante del teléfono lo admite.
Primero, detecte si puedes inhabilitar el sonido del obturador mediante programación, luego inhabilitarlo
Camera.CameraInfo info = new Camera.CameraInfo(); Camera.getCameraInfo(id, info); if (info.canDisableShutterSound) { mCamera.enableShutterSound(false) }
Tendrás que configurar id en la id de cámara adecuada en la llamada a Camera.getCameraInfo
, o desactivarlas todas en un bucle de 0 a Camera.getNumberOfCameras()
– 1.
La documentación del desarrollador recomienda que reproduzca otro sonido en lugar del sonido del obturador, pero no está obligado a hacerlo.
El método que has publicado ya es en realidad el mejor que puedo encontrar / pensar. La razón por la que no funciona es porque no se supone que. De hecho, en muchos lugares (la mayor parte de Europa, Japón, partes de EE.UU., etc.) es ilegal desactivar el sonido del obturador. Esto es para que no puedas tomar fotos en lugares que no se supone que debes, y por eso no tomas fotos de personas sin su permiso, y así sucesivamente. Es sólo un tiro en la oscuridad que el fabricante ha intentado a propósito para asegurarse de que no puede hacerlo no importa lo que (aunque técnicamente siempre hay una manera), pero cuando se piensa en ello, lógicamente no hay razón su código no debe Trabajo correcto? Es simple, básico, tiene sentido. De todos modos, hay muchas aplicaciones de cámara silenciosa por ahí y Cámara + ICS es en realidad construido en la cámara ICS predeterminado, pero tiene una opción de obturador silencioso por lo que debe ser posible.
Hay un teléfono por ahí que jugar el sonido del obturador por su cuenta. En este caso, no parece posible desactivar el sonido del obturador.
Una manera loca que puedo pensar es conseguir el permiso de silenciar el teléfono.
- Elige la foto de la galería en android
- La cámara no funciona / ahorra al usar Uri de caché como MediaStore.EXTRA_OUTPUT