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

  • 相关阅读:
    P2522 [HAOI2011]Problem b(容斥)
    P3455 [POI2007]ZAP-Queries
    P2519 [HAOI2011]problem a(线段树优化dp+思维)
    P2516 [HAOI2010]最长公共子序列 (lcs+容斥)
    [HAOI2010]软件安装(缩点+树形dp)
    P2508 [HAOI2008]圆上的整点(神仙题)
    [SDOI2011]消防(树的直径+二分||单调队列)
    QLabel设置字体颜色
    Qt绘制不规则串口
    C++继承关系
  • 原文地址:https://www.cnblogs.com/xwgli/p/12392449.html
Copyright © 2020-2023  润新知