我想实现简单的视频文件流。 还有就是我的API控制器:如何在ASP.Net MVC中实现视频文件流?
[HttpGet]
[Route("api/VideoContent")]
public HttpResponseMessage GetVideoContent([FromUri] string fileName)
{
if (fileName == null)
{
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
if (Request.Headers.Range != null)
{
try
{
//using (FileStream fileStream = _videoFileProvider.GetFileStream(fileName))
//{
HttpResponseMessage partialResponse = Request.CreateResponse(HttpStatusCode.PartialContent);
FileStream fileStream = _videoFileProvider.GetFileStream(fileName);
partialResponse.Content = new ByteRangeStreamContent(fileStream, Request.Headers.Range, new MediaTypeHeaderValue("video/mp4"));
return partialResponse;
//}
}
catch (Exception)
{
return new HttpResponseMessage(HttpStatusCode.InternalServerError);
}
}
return new HttpResponseMessage(HttpStatusCode.RequestedRangeNotSatisfiable);
}
此代码的工作,但你看到FILESTREAM没有配置。我试图使用块(注释行),但这段代码不起作用 - 在调试模式下运行时没有例外,但浏览器显示500错误代码的响应。
我的错误在哪里?为什么我得到500内部服务器错误?如何在我的情况下正确处理文件流?
[Maxad有一个很好的答案](http://stackoverflow.com/questions/16862782/streaming-large-video-files-net)通过finally块关闭流。 – Ethilium