rhu*_*hes 5 c# asp.net asp.net-mvc html5 html5-video
我有一个简单的MVC动作,返回FilePathResult指向视频.由于某种原因,HTML5视频(使用js-video.js)不播放视频.如果我将URL更改为我知道有效的URL,则视频播放正常.所以它必须与我提供文件的方式有关.
如果我浏览浏览器中的URL,视频会下载然后播放正常.
视频.mp4的返回MIME类型为video/mp4.
我使用Video Studio 2012,.NET 4,IIS 8 Express和Windows 7 x64 Home Premium.
这是我各自的代码:
[Authorize(Roles = "File_Read")]
public FileResult Get(int? id)
{
try
{
if (id == null)
throw new ArgumentNullException("id");
var fileRepo = FileRepositoryFactory.Repository;
var file = fileRepo.GetById(id.Value);
if (file == null)
throw new InvalidOperationException(String.Format("Failed to find file with id: {0}", id));
if (String.IsNullOrWhiteSpace(file.FilePath))
{
return this.File(file.Data, file.MIMEType, file.FileName);
}
else
{
return this.File(file.FilePath, file.MIMEType, file.FileName);
}
}
catch (Exception ex)
{
return this.File("failed.txt", "text/plain");
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个Chrome返回的屏幕截图:




HTML5标准Video需要支持范围请求.
在静态文件的情况下,此支持由服务器在内部提供,但是在ASP.NET MVC操作的情况下,它需要在ActionResult级别上实现.
文章在ASP.NET MVC范围请求- RangeFileResult详细描述了如何创建ASP.NET MVC ActionResult与范围请求支持.还有一个使用VideoJS的示例应用程序:ASP.NET MVC中的VideoJS
| 归档时间: |
|
| 查看次数: |
5418 次 |
| 最近记录: |