Actualmente estoy construyendo una API en ASP.NET Core 3 como mi primer proyecto con .NET Core.
Actualmente estoy tratando de enviar un video a mi interfaz de React.js para verlo en el navegador. La carga de archivos y videos funciona sin problemas y el método que ve a continuación también envía un archivo al cliente, pero si el video dura más de unos segundos, el reproductor de video es realmente lento y también toma mucho tiempo omitirlo. unos segundos del video. Creo que es porque el archivo primero se descarga completamente y luego se reproduce.
[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;
}
Creo que la forma de resolver mi problema es transmitir el archivo y no enviarlo como un todo. Ya busqué en Google cómo transmitir videos con ASP.NET Core 3, pero solo encuentro sitios web que lo explican para ASP.NET Core 2 (por ejemplo, http://anthonygiretti.com/2018/01/16/streaming-video-asynchronnous -in-asp-net-core-2-with-web-api / )
Ya intenté usar el código en estos sitios web, pero la forma en que lo hicieron no es compatible con ASP.NET Core 3.
¿Cómo puedo transmitir archivos en ASP.NET Core 3?