2011-03-13 19 views
13

Me gustaría reemplazar el sonido del obturador (el sonido que hace la cámara al tomar una foto) con algo más en el código. Esperaba que fuera como tonos de llamada o notificaciones, pero no veo nada en otro lugar al respecto. He visto código para silenciar el teléfono justo antes de tomar la foto, y después de haberlo desempañado inmediatamente, pero preferiría reemplazar el sonido con otro mp3 u ogg.¿Hay alguna manera de reemplazar o silenciar el sonido del obturador de la cámara en Android?

Comprenda que tiene un teléfono rooteado, puede reemplazar el archivo. Esta no es una solución para mi aplicación.

Solo en mi aplicación. Idea sería establecerlo, luego desarmarlo. Es curioso cómo después de escribir algo, volver a leerlo, ayuda a pensarlo desde una perspectiva diferente. He usado el siguiente código para apagar el servicio de audio, y toco mi sonido justo antes. Funciona como una gran solución. Quizás algún día podremos configurarlo.

AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    mgr.setStreamMute(AudioManager.STREAM_SYSTEM, true); 

Gracias!

+0

¿En tu aplicación o en general? – JoaquinG

+1

solo en mi aplicación. Idea sería establecerlo, luego desarmarlo. Es curioso cómo después de escribir algo, volver a leerlo, ayuda a pensarlo desde una perspectiva diferente. He usado el código 'código' AudioManager mgr = (AudioManager) getSystemService (Context.AUDIO_SERVICE); mgr.setStreamMute (AudioManager.STREAM_SYSTEM, true); para apagar el servicio de audio, pero reproducir mi sonido justo antes. Funciona como una gran solución. Quizás algún día podremos configurarlo. – MWMWM

+0

@MWMWM ¿Por qué no publica eso como respuesta? ¡Funciona de maravilla! – HRJ

Respuesta

10

Si está utilizando el objeto Camera, puede suministrar un Camera.ShutterCallback y reproducir lo que desee.

Si está utilizando un Intent para iniciar otra aplicación para tomar la foto, esa aplicación puede elegir qué se reproduce cuando se toma la fotografía.

Su solución mute-the-audio es hostil para el usuario, como si hubiera algo más que necesita reproducir un sonido del sistema durante ese período de tiempo, el usuario no lo escuchará.

+0

Puede ser hostil para el usuario, pero en algunos teléfonos e incluso en el emulador de Android, parece que ShutterCallback no desactiva el sonido de clic del obturador predeterminado. No parece haber otra forma de evitarlo. ¿Podría google forzar el sonido de la cámara debido a [legal concers] (http://osdir.com/ml/AndroidDevelopers/2009-06/msg00370.html) – jho

+2

esto no parece funcionar para mí. no hago nada en mi shuttercallback, pero el sonido todavía se reproduce. – clamp

+0

Lo mismo para mí, no funciona en Droid 3. – Geoffroy

0

Puede usar los datos de la devolución de llamada previa usando una función para guardarla en una imagen en algún tipo de desencadenante, como un botón, utilizando el oyente onclick. podrías comprimir la imagen a jpeg o png. De esta forma, no hay shutterCallback a implementar. y por lo tanto, puedes reproducir cualquier sonido que quieras o ninguno al tomar una foto.

Cuestiones relacionadas