HttpResponseMessage
在中未用作返回类型
asp.net-core
正如您已经观察到的,它会将其作为对象模型读取,并在响应中按设计对其进行序列化。
幸运的是ASP。NET Core 2.0
如果应用程序访问者请求具有范围请求标头的内容,则ASP。NET将识别并处理该标头。如果请求的内容可以部分交付,请使用ASP。NET将适当地跳过并仅返回请求的字节集。您不需要在方法中编写任何特殊的处理程序来适应或处理此特性;它会自动为您处理。
所以现在您所要做的就是返回文件流
[HttpGet]
public IActionResult GetVideoContent() {
if (Program.TryOpenFile("BigBuckBunny.mp4", FileMode.Open, out FileStream fs)) {
FileStreamResult result = File(
fileStream: fs,
contentType: new MediaTypeHeaderValue("video/mp4").MediaType,
enableRangeProcessing: true //<-- enable range requests processing
);
return result;
}
return BadRequest();
}
确保启用范围请求处理。不过,正如文档中所述,这应该根据请求头以及数据是否可以部分传递来处理。
从这里开始,现在只需从视频客户端指向端点,让它发挥其魔力