Потоковый MP3-файл MVC3 - PullRequest
       21

Потоковый MP3-файл MVC3

5 голосов
/ 18 января 2012

Я пытаюсь воспроизвести файл с помощью аудио тега HTML5.Я поместил действие Controller для возврата FileStream и прикрепил его к src для аудио.Однако содержимое не загружается в аудиотег и не воспроизводится, когда я нажимаю кнопку воспроизведения по умолчанию.Я знаю, что контроллер работает, когда я получаю доступ к src напрямую.Тем не менее, он не работает в аудио теге HTML5.

Может кто-нибудь сказать мне, что мне не хватает?

1 Ответ

7 голосов
/ 18 января 2012

Вы не должны возвращать 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>
...