5

ビデオへのポインティングをMVC返す簡単なアクションがあります。FilePathResult何らかの理由で、HTML5ビデオ(を使用js-video.js)がビデオを再生していません。URLを機能することがわかっているURLに変更すると、ビデオは正常に再生されます。したがって、それは私がファイルを提供する方法と関係があるに違いありません。

ブラウザでURLを参照すると、ビデオがダウンロードされて正常に再生されます。

ビデオは.mp4、返されるMIMEタイプがvideo/mp4。です。

Video Studio 2012、、、を使用して.NET 4IIS 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これが返されるもののスクリーンショットです:

通信網

ファイル取得リクエスト

失敗したmp4リクエスト

失敗したmp4リクエストの詳細

4

1 に答える 1

6

HTML5タグには、範囲リクエストVideoのサポートが必要です。

静的ファイルの場合、このサポートはサーバーによって内部的に提供されますが、ASP.NET MVCアクションの場合は、レベルで実装する必要がありActionResultます。

記事「ASP.NETMVCの範囲要求– RangeFileResultActionResult 」では、範囲要求をサポートするASP.NETMVCを作成する方法について詳しく説明しています。ここで利用可能なVideoJSを使用しているサンプルアプリケーションもあります:ASP.NETMVCのVideoJS

于 2012-11-14T08:20:25.267 に答える