2011-09-06 20 views
8

Czy możliwe jest przesłanie "strumienia" z MediaRecorder?Android MediaRecorder w transmisji strumieniowej

Unikalną metodą, jaką widzę, jest plik mediaRecorder.setOutputFile, który odbiera FileDescriptor. Więc mogę zapisać wynik do pliku lub wysłać przez gniazdo do odbiornika.

Próbowałem drugie rozwiązanie, ale wynik wideo jest uszkodzony, ponieważ nie jest "widoczny" w strumieniu.

Chodzi o to, aby użyć aparatu z urządzenia z systemem Android do opublikowania wyniku na Red5.

Odpowiedz

2

Tak, to możliwe, istnieje wiele przykładów na to. Można pobrać przykład sipdroid. Lub nawet Android IP camera, co jest znacznie prostsze.

Powodzenia

+1

[oto] (http://code.google.com/p/ipcamera-for-android/source/browse/trunk/droidipcam/src/teaonly /projects/droidipcam/StreamingLoop.java) odpowiedni kod. Wygląda na to, że używa się gniazda z zapętlonymi gniazdami unixowymi, aby uzyskać dane. Nieco hacky, ale nie za dużo myślę. – Timmmm

1

Tak jest to możliwe. tutaj przykładowy kod z deskryptora i gniazdem:

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(); 
Powiązane problemy