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.
- Android: ¿Cómo escuchar música usando el reproductor predeterminado?
- Android SDK: Reproducción de vídeo mediante el protocolo mms
- Transmisión en directo con Android Dispositivo
- Transmisión de audio y vídeo desde Android a PC / web.
- ¿Dónde obtener streaming (en directo) de vídeo y audio desde una aplicación de ejemplo de cámara para Android?
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!
- Cómo configurar el streaming de video en vivo de android mobile a wowza media server?
- Android: no se puede reproducir vídeo mp4
- Aplicación de streaming de video en vivo en Android
- ¿El streaming de audio / video de Android no puede transmitir un archivo rtsp?
- Vídeo en directo de un teléfono android a otro a través de WiFi
- Función "Battery saver" matando mi servicio de música
- Flujo de problemas de audio en ICS
- Recibir audio vía Bluetooth en Android
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?
- Cómo averiguar el consumo de la batería de cada aplicación en el dispositivo Android
- ¿Cómo mover una Textview dinámicamente en la pantalla? (Framelayout)