¿Puede el emulador de Android grabar y reproducir audio usando hardware de PC?

No tengo un teléfono Android, pero estoy tratando de desarrollarlo de todos modos. La única forma de probar mi aplicación en este momento es usar el emulador, que he leído no admite la grabación de audio. Sin embargo, leí sobre el comando de inicio “-audio” que permite la entrada / salida de audio desde su PC usando el backend ‘winaudio’. No he podido hacer que funcione, ¿es posible grabar usando el micrófono de mi PC? Si es así, ¿qué estoy haciendo mal?

La grabación de audio es posible al menos en el emulador estándar 2.3.3 en Windows 7; Lo he probado y funciona. Sin embargo, el audio grabado sonaba un poco raro (lento) en mi caso. No investigué la causa.

Necesitará agregar grabación de audio + soporte de reproducción al emulador (Android SDK y administrador de AVD -> Dispositivos virtuales -> Editar -> Hardware -> Nuevo). Luego use la [API MediaRecorder] [1] para grabar (MediaRecorder.AudioSource.MIC).

El código es:

fMediaRecorder= new MediaRecorder(); fMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); fMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB); fMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); fMediaRecorder.setAudioChannels(1); fMediaRecorder.setAudioSamplingRate(8000); fMediaRecorder.setOutputFile(fTmpFile.getAbsolutePath()); fMediaRecorder.prepare(); fMediaRecorder.start(); 

También necesitas

  

en tu AndroidManifest.xml

Funciona para mí, pero el audio está distorsionado.

A mi leal saber y entender: para poder usar MediaRecorder necesita construir toda la fuente para que pueda usar la función de grabación, junto con la opción que ha mencionado.

  • Obtenga el código fuente de la versión de Android a la que se dirige.
  • Construya la imagen genérica de la siguiente manera:
    1. . build/envsetup.sh
    2. lunch 1 (es decir, elija la opción genérica, no el simulador)
    3. make -j donde number = #cores soportados por tu pc; excluir los corchetes angulares
  • cd out/target/.../generic , … representa el rest de la ruta hasta genérica; establece la variable de entorno ANDROID_PRODUCTION_OUT en este directorio.
  • ejecuta el emulador desde el directorio out / host /…/ bin con la opción -audio.

Esto idealmente debería funcionar.

El sdk predeterminado no es compatible con su caso de uso, como ha mencionado correctamente aquí.

No. No es posible usar el emulador para grabar sonido. Tendrás que codificar la lógica de tu progtwig y luego implementar la apk real en tu teléfono para probar su funcionalidad.

Por favor, consulte este enlace ya que tiene la referencia oficial de mi comentario: http://developer.android.com/intl/es/guide/topics/media/audio-capture.html