小程序無法播放音頻

我的是Java后臺(tái)返回的小程序鏈接在瀏覽器里可以播放,但是和其他MP3鏈接播放界面不太一樣,顯示的是一個(gè)直播,且訪問鏈接返回的Transfer-Encoding= chunked,這樣是不行的,正確的在Java后臺(tái)代碼里設(shè)置方法:
設(shè)置關(guān)鍵:response.setContentLengthLong(file.length()); // ?? 關(guān)鍵:設(shè)置 Content-Length

//讀取文件
    @GetMapping("/getAudioFile/{id:.+}")
    private String getFile(@PathVariable String id, HttpServletRequest request, HttpServletResponse response) throws Exception {
        ServletOutputStream out = null;
        FileInputStream ips = null;
        String path = (new File(request.getServletContext().getRealPath("/"))).getParent() + "/upload" + request.getContextPath() + "/" + "audioFile" + "/" + id;
        File file = new File(path);
        if (file.exists()) {
            try {
                //獲取存放路徑
                ips = new FileInputStream(new File(path));
                response.setContentType(String.valueOf(MediaType.parseMediaType("audio/mpeg")));//可以在瀏覽器直接播放
                response.setContentLengthLong(file.length()); // ?? 關(guān)鍵:設(shè)置 Content-Length
                response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "inline");// inline 表示內(nèi)聯(lián)顯示,可以在瀏覽器直接播放
                // 可選:支持緩存或調(diào)試
                response.setHeader("Accept-Ranges", "bytes"); // 明確告知支持 Range 請(qǐng)求
                out = response.getOutputStream();
                //讀取文件流
                int len = 0;
                byte[] buffer = new byte[1024 * 10];
                while ((len = ips.read(buffer)) != -1){
                    out.write(buffer,0,len);
                }
                out.flush();
            } catch (Exception e){
                e.printStackTrace();
            } finally {
                if (out != null) {
                    out.close();
                    ips.close();
                }
            }
            return "1";
        } else {
            System.out.println("文件不存在");
            return "0";
        }

    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容