我正在尝试使用音频 HTML5 标签流式传输文件。我已将 Controller 操作用于返回 FileStream 并将其附加到 src 以获取音频。但是,当我按下默认播放按钮时,内容不会加载到音频标签中并且不会播放。当我直接访问 src 时,我知道控制器正在工作。但是,它在 HTML5 音频标签中不起作用。
谁能告诉我我错过了什么?
我正在尝试使用音频 HTML5 标签流式传输文件。我已将 Controller 操作用于返回 FileStream 并将其附加到 src 以获取音频。但是,当我按下默认播放按钮时,内容不会加载到音频标签中并且不会播放。当我直接访问 src 时,我知道控制器正在工作。但是,它在 HTML5 音频标签中不起作用。
谁能告诉我我错过了什么?
您不应该返回 a FileStream
,而应该从控制器操作中返回 aFileStreamResult
或 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");
}
}
和~/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>