在 ASP.NET Core 網站執行影片串流功能
本篇與其說文章,不如說是小筆記,因為要做到影片串流功能其實不困擾,解說如下:
首先開一個 ASP.NET Core 專案,然後讓網站能抓到欲播放影片的檔案位置,之後再將檔案回傳到前端:
using IHostingEnvironment = Microsoft.AspNetCore.Hosting.IHostingEnvironment;
.
.
private readonly ILogger<HomeController> _logger;
private readonly IHostingEnvironment _hostingEnvironment;
public HomeController(ILogger<HomeController> logger, IHostingEnvironment hostingEnvironment)
{
_logger = logger;
_hostingEnvironment = hostingEnvironment;
}
public IActionResult GetVideo()
{
string serverPath = _hostingEnvironment.WebRootPath;
string path = serverPath + "\\palm.mp4";
return PhysicalFile(path, contentType: "application/octet-stream", enableRangeProcessing: true);
}
重點就是 PhysicalFile(path, contentType: "application/octet-stream", enableRangeProcessing: true)
這行,所以說非常簡單,最後是前端的寫法:
<div class="text-center">
<h1 class="display-4">影片</h1>
<video src="/Home/GetVideo" autoplay="autoplay" controls="controls" width="800">
</video>
</div>
執行網站後,瀏覽器會有預設的播放控制器,可以觀看影片下載進度,在播放時會持續下載,但暫停時進度條就會停止。