我有一个简单的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");
}
}
这是Chrome
返回的屏幕截图: