Подтвердить что ты не робот

Как записывать видео на Android в Stream

Android MediaRecorder позволяет сохранять видео в файл (файл или сокет):

setOutputFile(FileDescriptor fd);
setOutputFile(String path)

Как сохранить видеоданные в OutputStream? Он будет использоваться для потоковой видеозаписи.

4b9b3361

Ответ 1

Использование для Android LocalServerSocket кажется единственным возможным способ получения видеоданных в виде потока. Вкратце, вы должны:

  • создать экземпляр LocalServerSocket
  • установите его как выходной файл в экземпляр MediaRecorder, используя дескриптор файла (mediaRecorder.setOutputFile(FileDescriptor fd);)
  • принять соединение
  • читать байты из него (как из InputStream) в отдельном потоке в цикле

Другие идеи?

Ответ 2

Вы можете сделать это, используя 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();

Если вы предпочитаете UDP, используйте ParcelFileDescriptor.fromDatagramSocket().

Кредит, в котором должен быть предоставлен кредит.