我正在从事媒体文件管理项目,并被要求评估包括视频流以观看视频而不是下载视频(当前的方式)的可行性。可悲的是,我找不到很多指南(实际上,我发现了很多指南,但其中大多数是过时的或最近对过时的教程的引用)。我要遵循的是本指南,尽管我不需要它在全屏模式下工作。
因此,基本上我正在做的(根据教程)是将其添加到HomeController.cs中:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
...
public ActionResult GetVideo()
{
var videoPath = Request.MapPath("~/Content/music.mp4");
FileStream fs = new FileStream(videoPath, FileMode.Open);
return new FileStreamResult(fs, "video/mp4");
}
Run Code Online (Sandbox Code Playgroud)
这到Index.cshtml:
<video controls="controls" id="videoPlayer">
<source src="~/home/getvideo" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)
如您所见,我只是使用MVC 5和HTML5,因为我不能添加工具或插件来保持项目的简单性。
无论如何,通过Chrome DevTools观看网络交易,我可以看到对GetVideo方法有两个请求:
除此之外,我无法播放文件!
我在GetVideo方法中添加了一个断点,发现:
所以这是我的问题:为什么视频无法播放?为什么控制器会收到两个请求?
P / S:是的,视频在该文件夹中。是的,这是文件的名称和扩展名。是的,我可以直接通过浏览器播放视频。