2016-06-21 20 views
0

複数のトレーニングビデオを表示するビューを作成しようとしています。私は一度動作するように次のコードを取得しましたが、今は黒いビデオフレームしか取得できません。ASP.Net MVC - ビューに複数のビデオを埋め込む方法

私のVideoController:

public ActionResult GetVideo() 
    { 
     var videoPath = 
      Request.MapPath("~/Content/videoFile/IQ3612 Benefits.mp4"); 
     FileStream fs = 
      new FileStream(videoPath, FileMode.Open); 
     return new FileStreamResult(fs, "video/mp4"); 
    } 

    public ActionResult GetVideo2() 
    { 
     var videoPath2 = 
      Request.MapPath("~/Content/videoFile/IQ3612 Technical.mp4"); 
     FileStream fs2 = 
      new FileStream(videoPath2, FileMode.Open); 
     return new FileStreamResult(fs2, "video/mp4"); 
    } 

マイビュー:

<body> 
<h1>Training Video Index</h1> 
<div> 
    <video width="320" height="240" controls="controls" > 
     <source src="@Url.Action("GetVideo","Video")" type="video/mp4"> 
    </video> 
</div> 
<div></div> 
<div> 
    <video width="320" height="240" controls="controls"> 
     <source src="@Url.Action("GetVideo2","Video")" type="video/mp4"> 
    </video> 
</div> 

+0

なぜファイルに直接リンクするだけではないのですか?おそらく、ここでは質問のためにコードを簡略化していますが、それはそのままで、リクエストにオーバーヘッドを追加するだけです。しかし、私はそれがあなたの問題ではないと思っていますが、それは正しい方向への一歩です。 –

+0

私の理解から、ファイルスチームを使用する必要があります。 「

」 は機能しません。 –

+0

うーん。いいえ、いずれにせよ、それはあなたが考えるものなら「ストリーミング」ではありません。ある意味では、HTTPでストリームされているものはすべてパケットでダウンロードされているためです。ビデオメタがフロントローディングされている場合、ブラウザはダウンロードが完了する前にブラウザで再生を開始できますが、適応性はありません(NetflixまたはYouTubeビデオの意味でのストリーミング)。私はあなたが "うまくいかない"ということを確信していませんが、直接リンクする唯一の理由はファイルが間違っている場合です。 –

答えて

0

のMP4形式のMIMEタイプをごweb.configファイルに正しく設定されているかどうかを確認してください。

<system.webServer> 
<staticContent> 
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
</staticContent> 
</system.webServer> 
+0

私はweb.configにこれを持っていませんでした。私はそれを追加しましたが、私のビデオはまだ動作しません。 –

+0

@Kram_Koorbse @Url.Action( "GetVideo"、 "Video")が有効なパスを生成しているかどうかをレンダリングしたHTMLで確認してください。無効または存在しないビデオURLが原因である可能性があります - あなたのMapPathは空またはnullを返します –

+0

私はそれが有効なパスを返すかどうかを確認し、確認できます。私のビューにビデオが1つしかない場合、ビデオが再生されます。自分の投稿に2つの動画を表示しようとすると、投稿に表示されるように、どちらの動画も再生されません。 –

0

私は次のコードは、一度仕事を得るんでしたが、私は今、黒のみ ビデオフレームを取得します。

最後の動作テスト以降にファイルパスが変更されましたか? Web URLとして使用されるファイル名にはスペースを入れてはいけません。たとえば、IQ3612 Benefits.mp4IQ3612_Benefits.mp4(ここではアンダースコアまたはダッシュまたはフルストップを使用)です。

最終的なURL:~/Content/videoFile/IQ3612_Benefits.mp4

可能な限り直接経路を試してください。これはあなたのファイルをaserverに置いてそれらに直接リンクすることを意味します。 ~の代わりに、../Content/videoFile/IQ3612_Benefits.mp4のHTTPバージョンを試してください。しかし、http://www.mysite/Content/videoFile/IQ3612_Benefits.mp4のような直接のリンクがうまくいくでしょう。

関連する問題