使用IISHandler流式收音机?

时间:2014-10-12 06:04:09

标签: c# asp.net html5

我试图在我的网站上播放自己的在线广播。我现在正专注于简单地使用http处理程序和html5来实现这一点。

如何让IISHandler始终保持运行而不会为每个用户结束?就像真正的在线广播一样。

1 个答案:

答案 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中,对此的任何请求都将是进程。你明白我的观点吗?