我试图在我的网站上播放自己的在线广播。我现在正专注于简单地使用http处理程序和html5来实现这一点。
如何让IISHandler始终保持运行而不会为每个用户结束?就像真正的在线广播一样。
答案 0 :(得分:0)
如果网址包含redirect
内容,则您handler
内的任何网址都会直接audio
,您打算将handler
添加到<audio>
src。所以你可以试试这个。
public void ProcessRequest(HttpContext context)
{
//context.Response.Redirect("http://api.soundcloud.com/tracks/148976759/stream?client_id=201b55a1a16e7c0a122d112590b32e4a");
// you can use above or else below
byte[] content = null;
string fileName = context.Server.MapPath(@"\mp3\") + context.Request["file_name"];
if (File.Exists(fileName))
{
using (FileStream stream = new FileStream(fileName, FileMode.Open))
{
content = new byte[System.Convert.ToInt32(stream.Length)];
stream.Read(content, 0, System.Convert.ToInt32(stream.Length));
context.Response.ContentType = "audio/mp3";
context.Response.OutputStream.Write(content, 0, content.Length);
}
}
}
<audio src="Handler1.ashx" controls></audio>
关于IISHandler constantly running?
- 当你在IIS中托管这个时,任何处理请求(即你的html
页面都有音频src = handler
,所以结束-user命中html页面,将调用handler),它将处理请求。与aspx
类似的概念。它们托管在IIS中,对此的任何请求都将是进程。你明白我的观点吗?