将视频从自编服务器流式传输到Android应用程序

时间:2014-06-19 10:42:29

标签: java android video tcp streaming

我想编写一个“简单”的Java Server类型的应用程序来将视频流式传输到不同的客户端。我的第一步将是一个包含VideoView和MediaPlayer设置为Video Streaming(More Information on Android SDK - MediaPlayer)的“简单”Android应用程序,虽然稍后我也可能添加桌面java应用程序。

我不确定我将如何实际在服务器上进行流式传输。我已经编写了一个小的Http Server来处理来自客户端的TCP GET请求。 在那里我用这个编码写回/“流”文件:

FileInputStream fs = new FileInputStream(f);
final byte[] buffer = new byte[1024];
int count = 0;

//add the header information to the respone

while ((count = fs.read(buffer)) >= 0) {
  os.write(buffer, 0, count);
}

os.flush();
fs.close();
os.close();

os是Response的OutputStream,我通过tcp套接字,f是请求的文件。 这似乎是立即发送文件几乎完全,而不是像我想要的那样,将其“分块”流式传输。

所以我的问题是:

  • 我有什么或者我必须更改我的编码以实际流式传输视频,或者这种方式是否已经正确?
  • 当我想使用UDP而不是TCP时,我只会将从fileinputstream读取的缓冲区字节数据直接放入DatagramPacket中,而MediaPlayer会知道如何处理它?<​​/ li>
PS:我知道这里有几个关于Java流媒体的问题,但它们实际上都不包括服务器端,但主要是(在这种情况下是Android-)客户端。

0 个答案:

没有答案