【发布时间】:2014-02-17 10:24:36
【问题描述】:
我正在使用 vlc 插件来播放实时流媒体的 rtmp 链接。如果将流链接放在目标标记中,如下代码所示:
<embed
type='application/x-vlc-plugin'
pluginspage='http://www.videolan.org'
version='VideoLAN.VLCPlugin.2'
width='800'
height='600'
id='vlc'
loop='yes'
autoplay='yes'
target="rtmp://122.221.75.124:1935/live/myc001">
</embed>
问题: 所以我的要求是通过显示 html 源代码来隐藏观众的 rtmp 链接。我使用 Http Handler 从数据库返回链接。 vlc插件Target标签为:
target="Handler1.ashx?ChannelID=22">
我的 Hanlder1.ashx 代码是:
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.QueryString["ChannelID"] == null) return;
string connStr = Connection_Class.Str_Conn;
string channelID = context.Request.QueryString["ChannelID"];
if (channelID == "") { return; }
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand("SELECT Link FROm TblChannel WHERE ChannelID = @id", conn))
{
cmd.Parameters.Add(new SqlParameter("@id", channelID));
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
reader.Read();
if (reader.HasRows == true)
{
string lnk = "";
lnk = reader["Link"].ToString();
context.Response.Clear();
context.Response.Write(lnk);
reader.Close();
context.Response.End();
}
else
{ return; }
}
}
}
当我在浏览器中键入链接时,Hanlder1 会正确返回链接:
http://localhost:54091/handler1.ashx?channelid=22
我在 vlc Target 标记中使用了相同的方法:(target="http://localhost:54091/handler1.ashx?channelid=22") 但链接无法播放。我使用断点来验证处理程序是否正常工作并返回字符串,但 vlc 不播放流。
【问题讨论】:
标签: c# asp.net httphandler vlc rtmp