13

Android MediaRecorder允许将视频保存到文件(文件或套接字):

setOutputFile(FileDescriptor fd);
setOutputFile(String path)

如何将视频数据保存到 OutputStream?它将用于流式视频录制。

4

2 回答 2

14

您可以使用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()改用。

信用到期的信用。

于 2013-01-30T08:14:01.830 回答
7

使用特定于 Android 的LocalServerSocket似乎是将视频数据作为流获取的唯一可能方法。简而言之,您必须:

  1. 创建 LocalServerSocket 实例
  2. 使用文件描述符 (mediaRecorder.setOutputFile(FileDescriptor fd);) 将其设置为 MediaRecorder 实例的输出文件
  3. 接受连接
  4. 在循环中的单独线程中从中读取字节(如从 InputStream 中)

另一个想法?

于 2013-01-30T07:56:23.610 回答