zoukankan      html  css  js  c++  java
  • 如何在 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 参数的重载,即可实现标准的文件下载响应内容。

  • 相关阅读:
    Jquery复习DAY1(jQuery 选择器 jQuery 样式操作 jQuery 效果)
    git知识
    简单分析vue计算属性和methods方法的区别
    vue生命周期
    elementUI的级联选择器Cascader 高度不匹配问题高度溢出错误
    .Net Core3.1 常用的服务注入
    判断是否为AJAX请求
    JWT权限验证
    CodeSmith介绍
    常见ORM介绍
  • 原文地址:https://www.cnblogs.com/xwgli/p/12392449.html
Copyright © 2011-2022 走看看