asp.net core 中配合響應 html5 的音視頻播放流,以及文件下載


一、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 參數的重載,即可實現標准的文件下載響應內容。

 

3.自定義文件輸出, 處理請求頭Range規則,具體參考:.Net Core 實現 自定義Http的Range輸出實現斷點續傳或者分段下載 

 

 

更多:

.Net Core 實現 自定義Http的Range輸出實現斷點續傳或者分段下載 

EF Core Sequence contains no elements  

.Net Core3 新特性整理  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM