我正试着在我的网站上播放我自己的在线电台。我现在专注于简单地使用http处理程序和html5来做到这一点。
如何保持IISHandler持续运行,而不会对每个用户结束?就像一个真正的在线电台。
发布于 2014-10-12 14:17:50
如果url包含audio内容,您可以直接redirect到handler中的任何url,您的目的是将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中时,任何对handler的请求(例如,你将有一个具有音频的src= handler的html页面,因此最终用户点击该html页面,handler将被调用),它将处理该请求。类似于aspx的概念。它们驻留在IIS中,任何对它的请求都将被处理。你明白我的意思了吗?
https://stackoverflow.com/questions/26322386
复制相似问题