java—发送响应文件而不下载它

nhjlsmyf  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(408)

我试着用hls构建一个http服务器来传输视频。我已经处理了如下的React。

private void handleResponse(HttpExchange exchange, String fileNameValue) {
    OutputStream responseStream = exchange.getResponseBody();

    File file = new File(fileNameValue);
    try {
        String encoding = "UTF-8";
        String response = FileUtils.readFileToString(file, encoding);
        exchange.getResponseHeaders().set("Content-Type", "application/x-mpegURL");
        exchange.getResponseHeaders().set("Accept-Ranges", "bytes");
        exchange.getResponseHeaders().set("Cache-Control", "max-age=0, no-cache, no-store");
        exchange.sendResponseHeaders(200, response.length());
        responseStream.write(response.getBytes());
        responseStream.flush();
        responseStream.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

但是浏览器总是下载文件而不是播放它。vlc媒体播放器也不会播放。
我想得到这样的结果。

你能告诉我怎么做吗?对一些研究关键词也进行了评价。

zbq4xfa0

zbq4xfa01#

我发现他们的网站使用xhr发送请求,所以文件出现在网络部分。
之后我使用hls.js,得到相同的结果:)

相关问题