Android MediaRecorder setOutPutFile () para transmitir usando Socket
stoy desarrollando una aplicación de Android que debería ser capaz de transmitir video a un servidor local en mi red sin almacenarla en la tarjeta SD.
Para esto, hice una aplicación de socket simple en C # que escucha la IP específica: PORT
n la parte de Android, había configurado lasetOutputFile()
a esta IP: PUERTO utilizando el socket.
Esta aplicación se inicia perfectamente en el teléfono Android, pero no muestra la vista previa y cuando comienzo a grabar se cierra sin ninguna excepción. Tampoco envía ningún flujo de datos a la red.
Cuando configuro elsetOutPutFile()
a la tarjeta SD, funciona perfectamente y graba videos también.
Para la parte del servidor, cuando envío los datos desde cualquier otra aplicación (desde la PC) a la misma IP: PUERTO, recibe los datos.
n resumen, quiero establecer el canal de comunicación entre la PC y Android usando el socket para la transmisión.
Aquí está mi código de Android:
Socket soc=new Socket("192.168.1.3",8210);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(soc);
...
...
// other Recorder setup steps
...
...
Recorder.setOutputFile(pfd.getFileDescriptor()); // working fine for sdcard
Recorder.setPreviewDisplay(holder.getSurface());
Recorder.prepare();
Aquí está mi aplicación de servidor que está en C # y se ejecuta en la PC:
socketForServer = new TcpClient("192.168.1.3", 8210);
NetworkStream networkStream = socketForServer.GetStream();
byte[] rData = new byte[1024];
networkStream.Read(rData, 0, 1024);
...
...
// process rData
...
...
No puedo entender el problema que está ocurriendo aquí. ¿Voy en la dirección correcta?