Tôi hiện đang xây dựng API trong ASP.NET Core 3 là dự án đầu tiên của tôi với .NET Core.
Tôi hiện đang cố gắng gửi video tới giao diện React.js của mình để xem video đó trong trình duyệt. Tải lên tệp và video không hoạt động mà không có vấn đề gì và phương pháp bạn nhìn thấy bên dưới cũng đã gửi tệp cho khách hàng nhưng nếu video dài hơn vài giây, trình phát video rất chậm và cũng mất nhiều thời gian để bỏ qua một vài giây của video. Tôi nghĩ đó là vì tập tin đầu tiên được tải xuống hoàn toàn và hơn là chơi.
[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;
}
Tôi nghĩ rằng cách để giải quyết vấn đề của tôi là truyền phát tệp và không gửi toàn bộ. Tôi đã tìm hiểu về cách truyền phát video với ASP.NET Core 3 nhưng tôi chỉ tìm thấy các trang web giải thích nó cho ASP.NET Core 2 (ví dụ: http://anthonygiretti.com/2018/01/16/streaming-video-asyn đồng bộ -in-asp-net-core-2-with-web-api / )
Tôi đã thử sử dụng mã trên các trang web này nhưng cách họ đã thực hiện không tương thích với ASP.NET Core 3.
Làm cách nào để truyền phát tệp trong ASP.NET Core 3?