我试图让我的 Java 后端将视频文件(MP4 等)“流式传输”到浏览器。我担心我必须编写非常复杂的、低级的 NIO 类型代码,例如:
public class VideoController extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) {
File f = new File("/opt/videos/video19394.mp4");
PrintStream ps = resp.getWriter();
while(still reading f) {
writeTheVideoBytesToStream(f, ps);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但看起来这一切都是由 HTML5 元素解决的<video/>(是吗??)。这样,从客户端,我可以指定:
<video width="500" height="500" url="http://myapp.example.com/videos/19394" />
Run Code Online (Sandbox Code Playgroud)
然后,在服务器端,即使是像 一样简单的内容,我也可以指定 URL 请求(例如)和位于 的服务器上的 MP4 文件web.xml之间的映射。还有http://myapp.example.com/videos/19394/opt/videos/video19394.mp4<video/>元素只是自动处理事情。
我在这里是否正确,或者即使我使用了<video/>,我仍然需要在服务器上实现低级字节/套接字流内容?