如何在 asp.net core 中配合响应 html5 的音视频播放流,以及文件下载

问题描述:

目前测试了在 Windows(谷歌浏览器)、Android(系统浏览器、QQ、微信)、iOS 三个系统不同浏览器中

对 html 5 页面 audio、video 标签的文件流输出

Windows(谷歌浏览器)支持最宽泛,只要保证是正确的文件流,基本都可以正常播放

Android(系统浏览器)也是一样,基本都支持,但 QQ 和 微信,对音乐是都可以支持,对视频,必须可以支持按请求的范围返回数据(即第一个请求响应为 HTTP 206)

iOS 在以上的要求基础上,要求返回的 content-type 必须正确才可以。

所以无论从服务器流量考虑,还是从最佳兼容性考虑,服务器对音视频流的返回,最好都支持 HTTP 206 按请求范围返回。

解决方案:

1、如果文件是由 iis 直接返回是没有问题的,iis 会自动做支持;

2、但很多情况下,考虑防止资源的盗链,可能需要由程序中转输出。

在 ASP.NET MVC 时,提供了 ByteRangeStreamContent 方法对结果进行返回。

在 asp.net core 中,其实更是直接内置了对该功能的支持,在 File()、PhysicalFile() 方法中,都有一个参数为 enableRangeProcessing 的重载,直接设置 true 即可启用对按范围返回文件流的支持。

使用带有 fileDownloadName 参数的重载,即可实现标准的文件下载响应内容。

posted @   不是豆豆  阅读(1652)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
友情链接:迷途


点击右上角即可分享
微信分享提示