小编Luk*_*ler的帖子

使用 ASP.NET Core 3 流式传输视频

我目前正在 ASP.NET Core 3 中构建 API,作为我使用 .NET Core 的第一个项目。

我目前正在尝试将视频发送到我的 React.js 前端以在浏览器中观看。上传文件和视频确实没有问题,您在下面看到的方法也已经将文件发送到客户端,但是如果视频长于几秒钟,则视频播放器确实很慢,并且跳过也需要很长时间几秒钟的视频。我认为这是因为文件首先被完全下载然后播放。

[Route("getFileById")]
public FileResult getFileById(int fileId)
{

    var context = new DbContext();

    var file = context.File.Find(fileId);

    if (file == null)
    {
        Console.WriteLine("file " + fileId + " not found");
        return null;
    }

    var content  = new FileStream(file.Name, FileMode.Open, FileAccess.Read, FileShare.Read);
    var response = File(content, "application/octet-stream");
    return response;
}
Run Code Online (Sandbox Code Playgroud)

我认为解决我的问题的方法是流式传输文件而不是整体发送。我已经在谷歌上搜索了如何使用 ASP.NET Core 3 流式传输视频,但我只找到为 ASP.NET Core 2 解释它的网站(例如http://anthonygiretti.com/2018/01/16/streaming-video-asynchronously -in-asp-net-core-2-with-web-api/ )

我已经尝试使用这些网站上的代码,但他们的做法与 ASP.NET Core 3 不兼容。

如何在 ASP.NET Core 3 …

.net c# asp.net-mvc streaming asp.net-core

25
推荐指数
1
解决办法
2万
查看次数

标签 统计

.net ×1

asp.net-core ×1

asp.net-mvc ×1

c# ×1

streaming ×1