You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让浏览器播放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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:50:26