2011-09-06 25 views
8

È possibile "streaming" risultato di MediaRecorder?MediaRecorder Android in streaming

Il metodo univoco che posso vedere è mediaRecorder.setOutputFile che riceve un FileDescriptor. Quindi posso scrivere il risultato su un file o inviarlo tramite socket al ricevitore.

Ho provato la seconda soluzione ma il video risultato è danneggiato perché non è "ricercabile" in streaming.

L'idea è di utilizzare la fotocamera del dispositivo Android per pubblicare i risultati su Red5.

risposta

2

Sì, è possibile, ci sono molti esempi per questo. È possibile effettuare il checkout con l'esempio sipdroid. O anche Android IP camera che è molto più semplice.

Good Luck

+1

[Ecco] (http://code.google.com/p/ipcamera-for-android/source/browse/trunk/droidipcam/src/teaonly /projects/droidipcam/StreamingLoop.java) il codice pertinente. Sembra utilizzare un socket unix a looping per ottenere i dati. Leggermente hacky ma non troppo penso. – Timmmm

1

Sì, è possibile. Ecco il codice di esempio con FileDescriptor e presa:

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();