如何将Android上的视频录制成流

如何将Android上的视频录制成流,android,stream,media,mediarecorder,Android,Stream,Media,Mediarecorder,Android允许将视频保存到文件(文件或套接字): 如何将视频数据保存到OutputStream?它将用于流式视频录制。Android专用似乎是以流方式获取视频数据的唯一可能方式。简言之,您必须: 创建LocalServerSocket实例 使用文件描述符(MediaRecorder.setOutputFile(FileDescriptor fd);)将其设置为MediaRecorder实例的输出文件 接受连接 在循环中的单独线程中从中读取字节(如从InputStream) 还有其他想法吗?您

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

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

Android专用似乎是以流方式获取视频数据的唯一可能方式。简言之,您必须:

  • 创建LocalServerSocket实例
  • 使用文件描述符(MediaRecorder.setOutputFile(FileDescriptor fd);)将其设置为MediaRecorder实例的输出文件
  • 接受连接
  • 在循环中的单独线程中从中读取字节(如从InputStream)
  • 还有其他想法吗?

    您可以使用:

    如果您更喜欢UDP,请使用


    积分到期。

    我知道他们会在setoutpuFile()中包含一种方法来指定文件以外的内容来接收字节,在java.net.ConnectException:failed to/127.0.0.1(端口8090):connect failed:ECONNREFUSED(连接被拒绝)为什么要尝试连接到localhost?你真的有什么东西在手机/模拟器上运行,监听这个端口吗?我已经设置了一个tcp服务器,每当我这样做的时候,我不会在tcp服务器上收到任何东西。我已经检查了它发送数据的套接字,并且给出的路径也可以正常工作。当我看到日志时,我看到了一个记录﹕ 启动失败:-38“提示:对于新的Android版本(我想从5.x开始)来说,这是不可能的@DenisLukenich为什么不呢?这已经是很久以前的事了。我认为它被封锁是因为更严格的安全措施。
    setOutputFile(FileDescriptor fd);
    setOutputFile(String path)
    
    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();