从Web Api和IIS7.5提供的音频文件仅在Chrome中播放一次

时间:2014-11-09 17:59:36

标签: html5 asp.net-web-api html5-audio asp.net-web-api2

我试图让我的后端提供.wav文件。当我尝试在Chrome中播放wav文件时,它只播放一次然后我需要重新加载页面或在音频元素上调用.load()。如果我在音频结束时按下播放按钮,我在Windows上试过的其他所有浏览器都会很高兴再次播放该文件。

我的代码很简单

public HttpResponseMessage Get()
{
    var path = @"C:\path\a.wav";

    HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);

    var stream = new FileStream(path, FileMode.Open);
    result.Content = new StreamContent(stream);
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("audio/wav");
    return result;
}

我的html页面

 <audio id="audio1" controls>
     <source src="api/audio" type="audio/wav">
 </audio>

我可以使用python和chrome之类的其他方法提供同样的文件,但是当我从Web Api提供文件时它只会播放一次。我的Web Api托管在IIS中是否有一些需要更改的设置?

修改 所以我可以直接从IIS服务器文件,它工作正常。我可以一遍又一遍地播放文件。所以我现在的问题是Web Api。我需要从控制器提供文件以检查用户是否已登录并授权。

1 个答案:

答案 0 :(得分:0)

我使用Nginx作为我的静态文件的后端解决了这个问题。我认为直接从IIS服务可能是一个坏主意。