How to record video on Android into Stream

前端 未结 2 1533
刺人心
刺人心 2020-12-24 09:00

Android MediaRecorder allows to save video to file (file or socket):

setOutputFile(FileDescriptor fd);
setOutputFile(String path)

How to sa

相关标签:
2条回答
  • 2020-12-24 09:17

    You can do it using ParcelFileDescriptor.fromSocket():

    String hostname = "example.com";
    int port = 1234;
    
    Socket socket = new Socket(InetAddress.getByName(hostname), port);
    
    ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
    
    MediaRecorder recorder = new MediaRecorder();
    recorder.setOutputFile(pfd.getFileDescriptor());
    recorder.prepare();
    recorder.start();
    

    If you prefer UDP, use ParcelFileDescriptor.fromDatagramSocket() instead.

    Credit where credit is due.

    0 讨论(0)
  • 2020-12-24 09:40

    Using Android-specific LocalServerSocket seems to be the only possible way to get video data as stream. In brief, you have to:

    1. create LocalServerSocket instance
    2. set it as output file to MediaRecorder instance using file descriptor (mediaRecorder.setOutputFile(FileDescriptor fd);)
    3. accept connection
    4. read bytes from it (as from InputStream) in separate thread in loop

    Another ideas?

    0 讨论(0)
提交回复
热议问题