用Java实现一个web音频播放器

Deathlightning
  • 41

后端用ssm,前端先请求,音频走的是response的输出流,这样发现音频播放进度无法控制,单独用http请求也不行,进度条拖不动,不知道各位大佬有没有什么好办法

回复
阅读 2.5k
1 个回答

http请求多媒体文件时为分块请求,header中会出现content-range字段,表示了请求的byte范围,需要特殊处理,同时设返回代码为206表示支持分块请求

final long fileLen = inputStream.available();
        String range = request.getHeader("Range");
        if (range == null) {
            streamCopy(inputStream, outputStream);
        } else {
            long start = Integer.parseInt(range.substring(range.indexOf("=") + 1, range.indexOf("-")));
            long end = range.endsWith("-") ? fileLen - 1 : Integer.parseInt(range.substring(range.indexOf("-") + 1));
            String ContentRange = "bytes " + start + "-" + end + "/" + fileLen;
            response.setStatus(206);
            response.setHeader("Content-Range", ContentRange);
            inputStream.skip(start);
            streamCopy(inputStream, outputStream);
        }
宣传栏