我有一個簡單的MVC
操作,返回指向視頻的FilePathResult
。由於某種原因,HTML5
視頻(使用js-video.js
)未播放該視頻。如果我將網址更改爲我知道的網址,則視頻播放效果良好。所以它必須與我提供文件的方式有關。HTML 5視頻未從我的MVC網站播放
如果我瀏覽到瀏覽器中的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
回報的屏幕截圖:
謝謝。我有它與MP3文件,但我的MP4不工作。我在主帖中添加了錯誤信息的屏幕截圖。 – rhughes
@rhughes您標記的內容長度是正確的,因爲請求具有'Range:bytes = 518758-518758'標頭(瀏覽器要求一個字節)。在Chrome上播放mp4文件有一些問題(不受支持的編碼等),只是谷歌找到一些。我建議在另一個瀏覽器中測試你的mp4文件,並測試一個已知在Chrome中工作的mp4(這應該很好 - http://www.longtailvideo.com/jw/upload/bunny.mp4首先測試它從此位置下載並在您的應用中使用)。還要確保您的HTML5視頻/來源標記中包含正確的代碼。 – tpeczek
我已經嘗試過兔子視頻,它在IE 9中正常工作,但在Chrome中無法正常工作。你知道這是爲什麼嗎? – rhughes