2011-09-06 20 views
8

¿Es posible "transmitir" el resultado de MediaRecorder?Android MediaRecorder en streaming

El único método que puedo ver es mediaRecorder.setOutputFile que recibe un FileDescriptor. Así que puedo escribir el resultado en un archivo o enviarlo a través del socket al receptor.

Probé la segunda solución pero el resultado del video está dañado porque no se puede "buscar" en la transmisión.

La idea es utilizar la cámara del dispositivo Android para publicar el resultado en Red5.

Respuesta

2

Sí, es posible, hay muchos ejemplos para eso. Puede ver el ejemplo sipdroid. O incluso Android IP camera que es mucho más simple.

Buena suerte

+1

[Aquí] (http://code.google.com/p/ipcamera-for-android/source/browse/trunk/droidipcam/src/teaonly /projects/droidipcam/StreamingLoop.java) el código relevante. Parece usar un socket Unix en bucle para obtener los datos. Ligeramente hacky pero no demasiado, creo. – Timmmm

1

Sí es posible. Aquí es el código de ejemplo con FileDescriptor y socket:

socket = new Scoket("192.168.1.234",8888); 
    ParcelFileDescriptor fileDescriptor = PercelFileDescriptor.fromSocket(socket); 

    mRecorder = new MediaRecorder(); 
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
    mRecorder.setOutputFile(fileDescriptor.getFileDescriptor); 
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

    try { 
     mRecorder.prepare(); 
    } catch (IOException e) { 
     Log.e(LOG_TAG, "prepare() failed"); 
    } 

    mRecorder.start();