Audio de la corriente del androide al servidor

Me gustaría entender cómo el trabajo de socket, sobre todo necesito algunos ejemplos de código para el lado del servidor para recibir la corriente enviada por mediarecorder desde el dispositivo.

Muchas gracias por cualquier ayuda.

Mi intención final real es hablar en el dispositivo y escucharlo en la PC, sólo una dirección.

En este momento puedo enviar el flujo con el siguiente código:

String hostname = "192.168.1.10"; int port = 8000; Socket socket = null; try { socket = new Socket(InetAddress.getByName(hostname), port); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket); recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(pfd.getFileDescriptor()); try { recorder.prepare(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } recorder.start(); 

Parece bien, pero personalmente prefiero amortiguar el audio en el dispositivo y enviarlo al servidor de otro hilo en lugar de atar la grabadora al socket directamente como lo hizo. Debido a que el almacenamiento en búfer localmente le permitirá manejar las interrupciones de conexión con gracia.

Imagine que está grabando y el usuario pasa por un túnel y pierde conexión a Internet – si está transmitiendo directamente, el socket se cerrará y el usuario se molesta 🙂 Sin embargo, si está almacenando en búfer los datos localmente, puede restablecer La conexión y continuar enviando el audio al servidor desde donde lo dejó, y espero que el usuario ni siquiera tiene que saber que una interrupción en la conexión acaba de suceder, porque simplemente funciona mágicamente.

Para conseguir que funcione, usted tendría que escribir la grabación a un almacenador intermediario local y tener una comprobación independiente del hilo de rosca para los nuevos datos en ese almacenador intermediario y para enviar al servidor tan pronto como sea posible.

  • ObjectInputStream - ¿Cómo esperar a nuevos datos?
  • Implementación cliente / servidor de socket TCP de Android
  • Cliente Android / socket de servidor Java; Android enviar pero no recibir?
  • Android VpnService proteger socket que se almacena en código nativo?
  • Conexión de socket SSL
  • Cómo pasar datos del servidor a la aplicación de Android: REST vs Sockets
  • Conexión de dos teléfonos Android para transferir datos entre ellos a través de WIFI
  • Reenvío de puertos Android
  • Acceda a la impresora a través de Wifi desde el dispositivo Android
  • Socket Android excepción "socket está cerrado"
  • ¿Cómo puede mi aplicación Android comunicarse con un daemon nativo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.