如何让浏览器播放Minimal Web API返回的MP3而非下载?
问题
我有一个Minimal Web API,功能代码如下:
app .MapGet("/Speak/{name}/{*text}", (HttpContext context, string name, string text) => { string mp3Name = $"{name} {DateTime.Now:yyyyMMdd HHmmss}.mp3"; string filename= Path.Combine(Environment.CurrentDirectory, "Sounds", mp3Name); VoiceProfiles.GetVoices.Find(name).Speak(filename, bearerKey, text).Wait(); return File(filename, "audio/mp3", mp3Name); });
访问https://localhost:44305/speak/fanny/Hello,%20World时,浏览器会下载生成的MP3文件,但我希望直接播放该文件。目前没有前端,仅通过该URL返回MP3,是否可行?
解决方法
已解决,感谢Mitch Denny,但并非借助'inline'头。
- 原代码写法:
return File(filename, "audio/mp3", mp3Name); - 正确写法:
return File(new FileStream(filename, FileMode.Open), "audio/mp3");
二者差异细微,但以流形式返回可让浏览器获取并播放;以文件形式返回则会强制浏览器下载。
内容的提问来源于stack exchange,提问作者Wim ten Brink
相关产品推荐
相关产品推荐

