2012-01-18 34 views
5

Tôi đang cố phát một tệp bằng thẻ HTML5 âm thanh. Tôi đã đặt hành động Controller để trả về một FileStream và gắn nó vào src cho âm thanh. Tuy nhiên, nội dung không tải vào thẻ âm thanh và không phát khi tôi nhấn nút phát mặc định. Tôi biết bộ điều khiển đang hoạt động khi tôi truy cập trực tiếp vào src. Tuy nhiên, nó không hoạt động trong thẻ âm thanh HTML5.Tệp MP3 trực tuyến MVC3

Bất cứ ai có thể cho tôi biết những gì tôi đang thiếu?

Trả lời

6

Bạn không nên trả về một FileStream, bạn nên trả về một FileStreamResult hoặc một FilePathResult từ hành động điều khiển của bạn, như thế này:

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 xem:

@{ 
    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

Sẽ không trở về tập tin chỉ khiến trình duyệt tải xuống tệp đầy đủ và sau đó bắt đầu phát tệp đó? Thay vì sau đó phát trực tiếp nó? –

Các vấn đề liên quan