流MP3文件MVC3

Cla*_*ght 5 html5 filestreamresult asp.net-mvc-3

我正在尝试使用音频HTML5标记流式传输文件.我已经将Controller操作放回FileStream并将其附加到src以获取音频.但是,当我按下默认播放按钮时,内容不会加载到音频标签中,也不会播放.我知道当我直接访问src时控制器正在工作.但是,它在HTML5音频标记中不起作用.

谁能告诉我我失踪了什么?

Dar*_*rov 7

您不应该返回a FileStream,您应该从控制器操作中返回a FileStreamResult或a 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");
    }
}
Run Code Online (Sandbox Code Playgroud)

~/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>
Run Code Online (Sandbox Code Playgroud)