CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/Video/Video.aspx.cs

140 lines
5.1 KiB
C#

using BLL;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.Video
{
public partial class Video : PageBase
{
public string playIds
{
get
{
return (string)ViewState["playIds"];
}
set
{
ViewState["playIds"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (this.CurrUser != null)
{
this.playIds = "";
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode
{
Text = "项目-设备",
NodeID = "0",
Expanded = true
};
this.tvControlItem.Nodes.Add(rootNode);
try
{
string url = ConfigurationManager.AppSettings["Video_URL"];
List<string> urls = new List<string>();
string res = APIGetHttpService.Http(url + "api/v1/device/channeltree");
List<Dictionary<string, string>> jsonNvr = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(res);
foreach (Dictionary<string, string> nvr in jsonNvr)
{
TreeNode newNode = new TreeNode
{
NodeID = nvr["id"],
Text = nvr["customName"],
ToolTip = "项目",
Expanded = false
};
rootNode.Nodes.Add(newNode);
string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?serial=" + nvr["serial"]);
var data = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras);
foreach (var video in data)
{
TreeNode tempNode = new TreeNode
{
NodeID = video["id"],
Text = video["name"],
ToolTip = "设备",
EnableClickEvent = true
};
newNode.Nodes.Add(tempNode);
}
}
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex, "视频监控", "Video.Video.aspx");
}
}
}
}
#region
/// <summary>
/// 树展开事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{ }
#endregion
#region TreeView
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
var id = this.tvControlItem.SelectedNodeID;
if (id.Contains(":"))
{
try
{
string url = ConfigurationManager.AppSettings["Video_URL"];
var stmp = new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds() + "";
string jsonCamera = APIGetHttpService.Http(url + "api/v1/stream/start?serial=" + id.Split(':')[0] + "&code=" + id.Split(':')[1] + "&_=" + stmp);
var data = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonCamera);
for (int i = 1; i <= 9; i++)
{
if (this.playIds.Contains("player0" + i))
{
continue;
}
else
{
this.playIds += "player0" + i;
PageContext.RegisterStartupScript("play(\"" + "player0" + i + "\",\"" + data["HLS"] + "\")");
break;
}
}
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex, "视频监控", "Video.Video.aspx");
}
}
}
#endregion
protected void btnClose_Click(object sender, EventArgs e)
{
var id = Request.Form["__EVENTARGUMENT"];
this.playIds = this.playIds.Replace(id, "");
PageContext.RegisterStartupScript("play(\"" + id + "\",\"\")");
}
}
}