Transmisión de audio de Android a la aplicación de escritorio

Lo que el título dice realmente. Necesito transmitir el audio del micrófono en el teléfono y reproducirlo en una aplicación de escritorio (también código Java) en un equipo.

Uso de UDP o TCP no importa para mí, lo que funciona mejor. El teléfono y la computadora estarán en el mismo NAT de todos modos así que la transmisión funcionará bien.

Tengo una buena idea de cómo enviar los datos de flujo desde el dispositivo utilizando este código:

MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); String host = "10.0.2.2"; int port = 5740; Socket socket = null; try { socket = new Socket(InetAddress.getByName(host), port); ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket); recorder.setOutputFile(pfd.getFileDescriptor()); recorder.prepare(); recorder.start(); Log.d(TAG, "Sending audio for 20 seconds.."); Thread.sleep(20000); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } 

El problema es, ¿cómo puedo reproducir este flujo en mi aplicación java en el PC? ¿O hay una mejor manera de transmitir el sonido?

He minado el Internet para la información en esto pero sin ningunos buenos resultados pero seguramente alguien debe haber logrado esto antes?

Gracias de antemano por cualquier tipo de ayuda!

He hecho algo muy cercano a lo que has estado tratando de hacer. Estoy usando gstreamer en mi servidor escuchando un puerto udp. También hay un servidor de retransmisión escrito en java que es básicamente nada más que un socket loopback. Hay un puerto de servidor que espera conexiones de cliente móvil, al recibir datos, los descarga todos usando DatagramPackets (clase java para paquetes udp) en el puerto udp de gstreamer. El único problema es encontrar el decodificador adecuado para su pipeline gstreamer.

¿Se puede escribir un cliente que sólo se conecta a su teléfono en ese puerto y recibe los datos?

Ahora, no hay decodificadores mp4 mp4, por lo que tendrá que utilizar otro formato. Eche un vistazo a algunas aplicaciones de ejemplo utilizando JavaLayer o JOgg. Ambos trabajan con cualquier InputStream, por lo que siempre y cuando se puede abrir un socket, puede reproducir su flujo.

Además, no estoy seguro acerca de Android, pero ¿no necesitas abrir un ServerSocket y esperar las conexiones?

  • Aplicación para Android con transmisión de música
  • Qué API de Internet Radio debe utilizarse para la aplicación de Android
  • Reproducir video en Android desde un flujo de bytes
  • recv falló (errno = 11) en la aplicación de streaming (MediaPlayer) en Nexus
  • Transmisión de vídeo desde android a escritorio
  • Android - MediaPlayer tamaño de búfer en ICS 4.0
  • RTSP Stream en VideoView en Aplicación para Android
  • ¿Por qué toma tanto tiempo para que MediaPlayer de Android prepare algunas secuencias en vivo para su reproducción?
  • Transmitir audio a http-post en Android
  • Widevine DRM en Android 4.X
  • El streaming de MediaPlayer de Android para el cambio de red
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.