如何将Android上的视频录制到Stream中

时间:2013-01-30 06:55:33

标签: android stream media mediarecorder

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

setOutputFile(FileDescriptor fd);
setOutputFile(String path)

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

2 个答案:

答案 0 :(得分:12)

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

信用到期的

Credit

答案 1 :(得分:7)

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

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

    另一个想法?