gpt4 book ai didi

java - 浏览器处理真实文件与 servlet 生成的文件不同

转载 作者:行者123 更新时间:2023-12-01 16:08:22 25 4
gpt4 key购买 nike

我有一个使用 html5 让用户收听服务器上的一些音频样本的应用程序。如果我指定服务器上实际音频文件的路径,一切都会按预期工作:

<audio src="/audio/english/banana_1.mp3" controls>
Your browser does not support the <code>audio</code> element.
</audio>

但是,如果我指向实际上是生成音频文件的 servlet 的资源,则音频似乎无法播放:

<audio src="/app/dbAudio" controls>
Your browser does not support the <code>audio</code> element.
</audio>

我已经确认这个 servlet 确实写出了所需的音频文件;我已经下载了,直接播放。我还将响应 contentType 设置为audio/mpeg 和audio/x-mpeg,但没有骰子。我是否需要设置其他 header 才能使其正常工作?感谢您的帮助。

  @RequestMapping(value = "/dbAudio", method = RequestMethod.GET)
public void getAudioFromDB(HttpServletRequest request,
HttpServletResponse response) throws Exception{

response.setContentType("audio/mpeg");
// Uncommenting the next allows me to download the resource directly and
// confirm that it is a well formed audio file
// response.setHeader("Content-disposition", "attachment; filename=banana.mp3");

OutputStream o = response.getOutputStream();

Resource r = ctx.getResources("/audio/english/banana_1.mp3")[0];
InputStream s = r.getInputStream();

int chunk = 0;
while(true){
chunk = s.read();
if(chunk == -1) break;
o.write(chunk);
}
o.flush();
}

最佳答案

试试这个 snippet .

关于java - 浏览器处理真实文件与 servlet 生成的文件不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com