studio - Android: grabación de voz y almacenamiento de audio
grabar voz en android studio (2)
Hay un ejemplo de cómo hacer una captura de audio usando MediaRecorder en la Documentación del desarrollador de Android.
Yo recomendaría guardar los archivos en la tarjeta SD y luego hacer que el código de tu galería verifique la tarjeta SD para ver qué archivos mostrar. Puede obtener el directorio de la tarjeta SD utilizando el método Environment.getExternalStorageDirectory () . Sería mejor guardar sus archivos en un subdirectorio del directorio raíz de la tarjeta SD.
Asegúrese de darle a sus aplicaciones los Permisos que necesitará. Por lo menos, necesitará RECORD_AUDIO y WRITE_EXTERNAL_STORAGE .
También debes ver estos tutoriales:
http://www.androiddevblog.net/android/android-audio-recording-part-1
http://www.androiddevblog.net/android/android-audio-recording-part-2
Estoy trabajando en la aplicación que grabará la voz del usuario y guardará el archivo en la tarjeta SD y luego permitirá que el usuario vuelva a escuchar el audio.
Puedo permitir que el usuario grabe su voz usando el RecognizerIntent, pero no puedo imaginar cómo guardar el archivo de audio y permitir que el usuario escuche el audio. Apreciaría si alguien pudiera ayudarme. He mostrado mi código a continuación:
// Setting up the onClickListener for Audio Button
attachVoice = (Button) findViewById(R.id.AttachVoice_questionandanswer);
attachVoice.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
voiceIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
voiceIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Please Speak");
startActivityForResult(voiceIntent, VOICE_REQUEST);
}
});
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == VOICE_REQUEST && resultCode == RESULT_OK){
}
Si realmente desea grabar audio a través de la API de reconocimiento de voz, entonces puede usar el RecognitionService.Callback que tiene un método
void bufferReceived(byte[] buffer)
Esto le da acceso al buffer de audio grabado a medida que se graba y reconoce el habla. (Sin embargo, no se proporciona información sobre la frecuencia de muestreo). Luego puede guardar los búferes obtenidos en un archivo para una reproducción posterior. Creo que las aplicaciones de teclado utilizan esta llamada para mostrar la forma de onda de la voz grabada. Tienes que implementar la UI tú mismo.
El RecognizerIntent.ACTION_RECOGNIZE_SPEECH
desnudo simplemente devuelve un conjunto de palabras / frases sin audio.