¿Cómo puedo pausar la grabación de voz en Android?

Mi objetivo es hacer una pausa en el archivo de grabación. Veo en el sitio de desarrolladores de Android, pero Media Recorder no tienen opción de pausa.

Java soporta la fusión de dos archivos de audio programatically pero en android no funciona.

Únete a dos archivos WAV de Java?

Y también usé el dispositivo predeterminado grabador de audio de aplicaciones que está disponible en todos los dispositivos, pero en Samsung pocos dispositivos no han returened ruta de grabación.

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); startActivityForResult(intent,REQUESTCODE_RECORDING); 

Cualquier ayuda para la grabación de voz con funcionalidad de pausa.

http://developer.android.com/reference/android/media/MediaRecorder.html

MediaRecorder no tiene pausa y métodos de reanudación. En su lugar, debe utilizar métodos stop and start.

Puede remitir mi respuesta aquí si todavía tiene este problema. Para el nivel API> = 24 métodos de pausa / reanudar están disponibles en la clase MediaRecorder de Android.

Para el nivel API <24

Añada la siguiente dependencia en su archivo gradle:

 compile 'com.googlecode.mp4parser:isoparser:1.0.2' 

La solución es detener la grabadora cuando el usuario pausa y empezar de nuevo en reanudar como ya se mencionó en muchas otras respuestas en stackoverflow. Almacene todos los archivos de audio / vídeo generados en una matriz y utilice el siguiente método para combinar todos los archivos multimedia. El ejemplo se toma de la biblioteca de mp4parser y poco modificado según mi necesidad.

 public static boolean mergeMediaFiles(boolean isAudio, String sourceFiles[], String targetFile) { try { String mediaKey = isAudio ? "soun" : "vide"; List<Movie> listMovies = new ArrayList<>(); for (String filename : sourceFiles) { listMovies.add(MovieCreator.build(filename)); } List<Track> listTracks = new LinkedList<>(); for (Movie movie : listMovies) { for (Track track : movie.getTracks()) { if (track.getHandler().equals(mediaKey)) { listTracks.add(track); } } } Movie outputMovie = new Movie(); if (!listTracks.isEmpty()) { outputMovie.addTrack(new AppendTrack(listTracks.toArray(new Track[listTracks.size()]))); } Container container = new DefaultMp4Builder().build(outputMovie); FileChannel fileChannel = new RandomAccessFile(String.format(targetFile), "rw").getChannel(); container.writeContainer(fileChannel); fileChannel.close(); return true; } catch (IOException e) { Log.e(LOG_TAG, "Error merging media files. exception: "+e.getMessage()); return false; } } 

Utilice flag isAudio como true para archivos de audio y false para archivos de vídeo.

Tenía tal requisito en uno de mis proyectos, lo que hicimos era como hacer un archivo en bruto para guardar los datos grabados en el inicio de la grabación con AudioRecord , el para cada curriculum vitae adjuntamos los datos al mismo archivo

me gusta

 FileOutputStream fos= new FileOutputStream(filename, true); 

Aquí el nombre de archivo es el nombre del archivo en bruto y anexar los nuevos datos de grabación a él.

Y cuando el usuario detenga la grabación, convertiremos el archivo completo en formato .wav (u otro). Lo siento que no puedo publicar el código completo. Espero que esto le dará una dirección para trabajar.

No puedes hacerlo usando la API de Android, pero puedes guardar una gran cantidad de archivos mp4 y fusionarlos usando mp4parser : poderosa librería escrita en Java. También vea mi grabadora simple con una "pausa": https://github.com/lassana/continuous-audiorecorder .

  • Error de inicio del error mediarecording de Android -19 runTimeException
  • Android MediaRecorder setCaptureRate () y velocidad de reproducción de vídeo
  • Acceso a la secuencia de vídeo desde el dispositivo Looxcie
  • Cómo cambiar la velocidad de fotogramas de la cámara para crear vídeo de cámara lenta o lapso de tiempo en Android
  • MediaRecorder - setOrientationHint () excepción / error
  • Problema de MediaRecorder en Android Lollipop
  • Android MediaRecorder se bloquea
  • Android MediaRecorder produce video corrupto con líneas verdes
  • La parada del mediarecorder de Android falló
  • Android: combina dos archivos MP4
  • Cómo grabar vídeo en Android en Stream
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.