Grabación de audio no para archivo en Android

Quiero android.media.MediaRecorder. Para grabar el audio no en el archivo, sino en la misma variable, por ejemplo char [] o byte [] o alguna otra estructura de buffer de datos. Quiero enviarlo al servidor remoto a través de Wi-Fi, ¿puede android.media.MediaRecorder proporcionar esta funcionalidad?

Lo que puede hacer aquí es utilizar la clase ParcelFileDescriptor.

//make a pipe containing a read and a write parcelfd ParcelFileDescriptor[] fdPair = ParcelFileDescriptor.createPipe(); //get a handle to your read and write fd objects. ParcelFileDescriptor readFD = fdPair[0]; ParcelFileDescriptor writeFD = fdPair[1]; //next set your mediaRecorder instance to output to the write side of this pipe. mediaRecorder.setOutputFile(writeFD.getFileDescriptor()); //next create an input stream to read from the read side of the pipe. FileInputStream reader = new FileInputStream(readFD.getFileDescriptor()); //now to fill up a buffer with data, we just do a simple read byte[] buffer = new byte[4096];//or w/e buffer size you want //fill up your buffer with data from the stream reader.read(buffer);// may want to do this in a separate thread 

Y ahora tiene un búfer lleno de datos de audio

Alternativamente, es posible que desee escribir datos directamente en un zócalo de la grabadora. Esto también se puede lograr con la clase ParcelFileDescriptor.

 //create a socket connection to another device Socket socket = new Socket("123.123.123.123",65535);//or w/e socket address you are using //wrap the socket with a parcel so you can get at its underlying File descriptor ParcelFileDescriptor socketWrapper = ParcelFileDescriptor.fromSocket(socket); //set your mediaRecorder instance to write to this file descriptor mediaRecorder.setOutputFile(socketWrapper.getFileDescriptor()); 

Ahora cada vez que su grabadora de medios tiene datos para escribirlo automáticamente lo escribirá sobre el socket

  • Volley RequestQueue Tiempo de espera
  • Añadiendo el tiempo de Joda
  • Android: Guardar el objeto android.net.Uri en la base de datos
  • Eclipse no se inicia (Ubuntu): termina JVM. Código de salida = 2
  • Enfoque correcto de Android: ¿dónde se debe analizar la respuesta de JSON - en el subproceso de interfaz de usuario, o en otro?
  • Java.lang.ClassNotFoundException en dalvik.system.BaseDexClassLoader.findClass
  • ¿Por qué no termina esta actividad?
  • Obtener las líneas de GL10 dibujo de imágenes junto a la otra, la solución?
  • Tamaños desplegables para diferentes tamaños de pantalla en android
  • ¿Registrar automáticamente eventos de ciclo de vida de Android mediante ActivityLifecycleCallbacks?
  • Para Android, ¿debo usar el tipo de datos float más a menudo para mi juego, o simplemente lanzar para flotar al dibujar?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.