本篇與其說文章,不如說是小筆記,因為要做到影片串流功能其實不困擾,解說如下:

首先開一個 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> 

執行網站後,瀏覽器會有預設的播放控制器,可以觀看影片下載進度,在播放時會持續下載,但暫停時進度條就會停止。