.NET Core MVC实现音视频流式传输(支持Chrome进度拖拽)
实现支持Chrome进度拖拽的音视频流式传输(.NET Core 2.0 + FileStreamResult)
最近在给网站做音视频流式传输功能,最在意的就是要支持Chrome浏览器里的进度条拖拽定位——毕竟用户总爱跳着看内容对吧?查了一圈资料后,发现.NET Core 2.0提供的FileStreamResult是官方推荐的简便方案,试了下确实能搞定,这里分享下我的简化实现:
核心Action代码
public IActionResult StreamMedia(string mediaPath, string contentType) { // 根据实际业务场景获取文件流,这里示例从本地文件读取 var fileStream = new FileStream(mediaPath, FileMode.Open, FileAccess.Read); // 返回FileStreamResult,自动处理范围请求(支持进度拖拽) return File(fileStream, contentType); }
关于File方法的简化说明
返回传入的
fileStream中的文件内容,响应状态码默认是200 OK,同时会将指定的contentType设置为响应头的Content-Type字段——比如音频用audio/mpeg,视频用video/mp4这类标准MIME类型。
关键提示
要让Chrome支持进度拖拽,本质是服务器要处理范围请求(Range Requests),而FileStreamResult在.NET Core 2.0里已经内置了这个逻辑,不用我们手动写Range头的处理代码,这也是它成为推荐方案的原因——省心又高效。
内容的提问来源于stack exchange,提问作者CryShana
相关产品推荐
相关产品推荐

