現在、.NET Coreを使用した最初のプロジェクトとして、ASP.NET Core 3でAPIを構築しています。
私は現在、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;
}
私の問題を解決する方法は、ファイルをストリーミングすることであり、全体として送信することではないと思います。ASP.NET Core 3でビデオをストリーミングする方法についてはすでにグーグル検索しましたが、ASP.NET Core 2について説明しているWebサイトしか見つかりません(例:http : //anthonygiretti.com/2018/01/16/streaming-video-asynchronously -in-asp-net-core-2-with-web-api /)
私はすでにこれらのWebサイトでコードを使用しようとしましたが、その方法はASP.NET Core 3と互換性がありません。
ASP.NET Core 3でファイルをストリーミングするにはどうすればよいですか?