2012-01-18 14 views
5

オーディオHTML5タグを使用してファイルをストリーミングしようとしています。私は、FileStreamを返すようにControllerアクションを置き、それをオーディオ用のsrcにアタッチしました。ただし、コンテンツはオーディオタグに読み込まれておらず、デフォルトの再生ボタンを押しても再生されません。私はsrcに直接アクセスするときにコントローラが動作していることを知っています。ただし、HTML5オーディオタグでは機能しません。ストリームMP3ファイルMVC3

誰かが私に行方不明を教えてもらえますか?

答えて

6

あなたが返す必要があり、FileStream返すべきではありません。このようなFileStreamResultたり、コントローラのアクションからFilePathResult、:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult MyAudio() 
    { 
     var file = Server.MapPath("~/app_data/test.mp3"); 
     return File(file, "audio/mp3"); 
    } 
} 

~/Views/Home/Index.cshtmlビュー:

@{ 
    Layout = null; 
} 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Sound Sample</title> 
</head> 
<body> 
    <article class="audio"> 
     <header> 
      <h2>Some audio</h2> 
     </header> 

     <audio controls> 
      <source src="@Url.Action("myaudio")" type="audio/mp3" /> 
      <p>Your browser does not support HTML 5 audio element</p> 
     </audio> 
    </article> 
</body> 
</html> 
+0

ファイルを返さないだろうブラウザがファイルを完全にダウンロードして再生を開始するだけですか?むしろそれをストリーミングする? –

関連する問題