public void SaveRoomInfo() { RoomBox RB = new RoomBox() { data = Roomlist }; //房间信息 MMPU.SaveFile("./RoomListConfig.ini", JsonConvert.SerializeObject(RB)); }
public void SaveRoomInfo() { RoomBox RB = new RoomBox() { data = Roomlist }; //房间信息 MMPU.SaveFile(MMPU.RoomConfigFile, JsonConvert.SerializeObject(RB)); }
private void Form1_Load(object sender, EventArgs e) { MMPU.InitializeRoomConfigFile(); CheckVersion(); egg(); InitializeRoomList(); TimelyRefreshingRoomStatus(); initializationVLC(); streamNumber++; }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { try { MMPU.DelFile("./debug.log"); } catch (Exception) { } }
/// <summary> /// 关闭窗口 /// </summary> /// <param name="A">房间标号</param> private void ClForm(int A) { FM[A].Close(); VLC[A].Stop(); liveIndex.Items.Remove(A.ToString()); new Thread(new ThreadStart(delegate { RInfo[A].status = false; Thread.Sleep(1000); MMPU.DelectDir("./tmp/" + RInfo[A].RoomNumber); })).Start(); }
//检测是否在直播 public static string getBiliRoomId(string ID, string ty) { //读取设置 var originalRoomId = ID; string _flvUrl = ""; //准备查找下载地址 //查找真实房间号 string _roomid = ""; switch (ty) { case "bilibili": _roomid = GetRoomid(ID); break; case "youtube": try { string ASDASD = MMPU.get返回网页内容("https://www.youtube.com/channel/UCcnoKv531otgPrd3NcR0mag/live"); ASDASD = ASDASD.Replace("\\\"},\\\"playbackTracking\\\"", "㈨").Split('㈨')[0].Replace("\\\"hlsManifestUrl\\\":\\\"", "㈨").Split('㈨')[1].Replace("\",\\\"probeUrl\\\"", "㈨").Split('㈨')[0].Replace("\\", ""); _roomid = MMPU.get返回网页内容(ASDASD); } catch (Exception) { _roomid = "该房间未在直播"; } break; } if (_roomid == "该房间未在直播" || string.IsNullOrEmpty(_roomid)) { return("该房间未在直播"); } //查找真实下载地址 try { _flvUrl = GetTrueUrl(_roomid); } catch { Console.WriteLine("未取得下载地址"); } return(_flvUrl); }
/// <summary> /// 初始化房间列表 /// </summary> private void InitializeRoomList() { JObject jo = (JObject)JsonConvert.DeserializeObject(MMPU.ReadFile("./RoomListConfig.ini")); try { while (true) { for (int i = 0; ; i++) { Roomlist.Add(new RoomCadr() { Name = jo["data"][i]["Name"].ToString(), RoomNumber = jo["data"][i]["RoomNumber"].ToString() }); } } } catch (Exception) { } UpdateRoomList(); }
private void 读取房间配置信息并加载到内存() { JObject jo = (JObject)JsonConvert.DeserializeObject(MMPU.读取文件("./RoomListConfig.ini")); try { while (true) { for (int i = 0; ; i++) { Roomlist.Add(new RoomCadr() { Name = jo["data"][i]["Name"].ToString(), RoomNumber = jo["data"][i]["RoomNumber"].ToString() }); } } } catch (Exception) { } 更新房间列表(); }
/// <summary> /// 检查版本 /// </summary> private void CheckVersion() { Thread T1 = new Thread(new ThreadStart(delegate { while (true) { try { if (MMPU.测试网络("223.5.5.5")) { //MMPU.储存文件("./config.ini",ver); // ver = MMPU.读取文件("./config.ini"); string ServerVersion = MMPU.get返回网页内容("https://github.com/CHKZL/DDTV/raw/master/src/Ver.ini").Trim(); string NewVersionText = MMPU.get返回网页内容("https://github.com/CHKZL/DDTV/raw/master/src/Ver_Text.ini").Trim(); if (ver != ServerVersion) { DialogResult dr = MessageBox.Show("====有新版本可以更新====\n\n最新版本:" + ServerVersion + "\n本地版本:" + ver + "\n\n" + NewVersionText + "\n\n点击确定转到本项目github页面下载", "有新版本", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { System.Diagnostics.Process.Start("https://github.com/CHKZL/DDTV"); } else { return; } } } Thread.Sleep(60000); } catch (Exception) { } } })); T1.IsBackground = true; T1.Start(); }
/// <summary> /// 初始化房间列表 /// </summary> private void InitializeRoomList() { JObject jo = (JObject)JsonConvert.DeserializeObject(MMPU.ReadFile("./RoomListConfig.ini")); try { while (true) { for (int i = 0; ; i++) { if (YTB) { Roomlist.Add(new RoomCadr() { Name = jo["data"][i]["Name"].ToString(), RoomNumber = jo["data"][i]["RoomNumber"].ToString(), status = false, Types = jo["data"][i]["Types"].ToString(), VideoStatus = ((jo["data"][i]["VideoStatus"].ToString() == "True") ? true : false) }); } else { if (jo["data"][i]["Types"].ToString() != "youtube") { Roomlist.Add(new RoomCadr() { Name = jo["data"][i]["Name"].ToString(), RoomNumber = jo["data"][i]["RoomNumber"].ToString(), status = false, Types = jo["data"][i]["Types"].ToString(), VideoStatus = ((jo["data"][i]["VideoStatus"].ToString() == "True") ? true : false) }); } } } } } catch (Exception ex) { string A = ex.ToString(); } UpdateRoomList(); }
public void GetYoutube(string roomId) { int 标号 = int.Parse(RInfo[CurrentlyStream].Name); //VLC[CurrentlyStream].Play(@".\img\630529.ts", PBOX[CurrentlyStream].Handle); string ASDASD = MMPU.get返回网页内容("https://www.youtube.com/channel/" + roomId + "/live"); try { ASDASD = ASDASD.Replace("\\\"},\\\"playbackTracking\\\"", "㈨").Split('㈨')[0].Replace("\\\"hlsManifestUrl\\\":\\\"", "㈨").Split('㈨')[1].Replace("\",\\\"probeUrl\\\"", "㈨").Split('㈨')[0].Replace("\\", ""); } catch (Exception) { ClForm(标号); MessageBox.Show("该直播已停止"); return; } ASDASD = MMPU.get返回网页内容(ASDASD); /* * 3 256x144 * 5 426x240 * 7 640x360 * 9 854x480 * 11 1280x720 * 13 1920x1080 */ string[] ASD = ASDASD.Split('\n'); bool 播放开始 = false; Thread T1 = new Thread(new ThreadStart(delegate { List <string> LS1 = new List <string>(); int S = 0; while (true) { if (!RInfo[标号].status) { return; } if (FM[标号].Visible == false) { return; } ASDASD = MMPU.get返回网页内容(ASD[CurrentResolution()]); /* * 6 1 * 8 2 * 10 3 */ string[] LS3 = ASDASD.Split('\n'); List <string[]> LS2 = new List <string[]>(); for (int i = 0; i < LS3.Length; i++) { if (LS3[i].Length != LS3[i].Replace("http", "").Length) { string[] A = new string[2]; Regex reg = new Regex("index.m3u8/sq/(.+)/goap"); Match match = reg.Match(LS3[i]); string value = match.Groups[1].Value; A[0] = LS3[i]; A[1] = value; LS2.Add(A); } } MMPU.IsExistDirectory("./tmp/" + roomId + "/"); for (int i = 0; i < LS2.Count; i++) { if (LS1.Count == 0) { LS1.Add(LS2[i][1]); MMPU.HttpDownloadFile(LS2[i][0], "./tmp/" + roomId + "/" + LS2[i][1] + ".ts"); S++; //break; } else if (!LS1.Contains(LS2[i][1])) { LS1.Add(LS2[i][1]); MMPU.HttpDownloadFile(LS2[i][0], "./tmp/" + roomId + "/" + LS2[i][1] + ".ts"); S++; } } RInfo[标号].status = true; if (S > 5 && !播放开始) { 播放开始 = true; Thread T2 = new Thread(new ThreadStart(delegate { int S1 = int.Parse(LS1[0]); FileStream fs = new FileStream("./tmp/" + roomId + "/" + S1 + ".ts", FileMode.Append); //以Append方式打开文件 BinaryWriter bw = new BinaryWriter(fs); //二进制写入流 RInfo[标号].steam = "./tmp/" + roomId + "/" + S1 + ".ts"; //VLC[CurrentlyStream].Play("./tmp/" + roomId + "/" + S1 + ".ts", PBOX[CurrentlyStream].Handle); S1++; int k = 0; while (true) { if (!RInfo[标号].status) { fs.Close(); bw.Close(); return; } if (FM[标号].Visible == false) { fs.Close(); bw.Close(); return; } try { if (MMPU.IsExistFile("./tmp/" + roomId + "/" + (S1 + 1) + ".ts")) { FileStream fs1 = new FileStream("./tmp/" + roomId + "/" + S1 + ".ts", FileMode.Open);//以Append方式打开文件 BinaryReader br1 = new BinaryReader(fs1); int line = 0; byte[] Q2 = br1.ReadBytes((int)br1.BaseStream.Length); bw.Write(Q2, 0, Q2.Length); //写文件 fs1.Close(); br1.Close(); MMPU.DelFile("./tmp/" + roomId + "/" + S1 + ".ts"); S1++; } else { if (MMPU.IsExistFile("./tmp/" + roomId + "/" + (S1 + 2) + ".ts")) { S1++; } } } catch (Exception) { // Console.WriteLine(S1); Thread.Sleep(10); } if (k == 0) { for (int i = 0; i < 5; i++) { if (FM[CurrentlyStream].Visible == true) { VLC[CurrentlyStream].PlayFile("./tmp/" + roomId + "/" + S1 + ".ts", PBOX[CurrentlyStream].Handle); Thread.Sleep(1000); } } k++; } } })); T2.IsBackground = true; T2.Start(); } } })); T1.IsBackground = true; T1.Start(); }
private void DloFile(string RoomId, string path) { MMPU.HttpDownloadFile(getUriSteam.GetTrueUrl(RoomId), path); }
/// <summary> /// 初始化房间列表 /// </summary> private void InitializeRoomList() { JObject jo = (JObject)JsonConvert.DeserializeObject(MMPU.ReadFile(MMPU.RoomConfigFile)); try { while (true) { int a1015 = 0, a1014 = 0, a1013 = 0; try { //1.0.1.5兼容 for (int i = 0; ; i++) { if (YTB) { Roomlist.Add(new RoomCadr() { Name = jo["data"][i]["Name"].ToString(), RoomNumber = jo["data"][i]["RoomNumber"].ToString(), status = false, Types = jo["data"][i]["Types"].ToString(), VideoStatus = ((jo["data"][i]["VideoStatus"].ToString() == "True") ? true : false) }); } else { if (jo["data"][i]["Types"].ToString() != "youtube") { Roomlist.Add(new RoomCadr() { Name = jo["data"][i]["Name"].ToString(), RoomNumber = jo["data"][i]["RoomNumber"].ToString(), status = false, Types = jo["data"][i]["Types"].ToString(), VideoStatus = ((jo["data"][i]["VideoStatus"].ToString() == "True") ? true : false) }); } } a1015++; } } catch (Exception) { try { if (a1015 == 0) { //1.0.1.4兼容 for (int i = 0; ; i++) { Roomlist.Add(new RoomCadr() { Name = jo["data"][i]["Name"].ToString(), RoomNumber = jo["data"][i]["RoomNumber"].ToString(), status = false, Types = jo["data"][i]["Types"].ToString() }); a1014++; } } else { break; } } catch (Exception) { if (a1014 == 0) { //1.0.1.3兼容 for (int i = 0; ; i++) { Roomlist.Add(new RoomCadr() { Name = jo["data"][i]["Name"].ToString(), RoomNumber = jo["data"][i]["RoomNumber"].ToString(), status = ((jo["data"][i]["Ty"].ToString() == "True") ? true : false), Types = "bilibili" }); } } else { break; } } } } } catch (Exception ex) { string A = ex.ToString(); } UpdateRoomList(); }
public void 储存房间信息到硬盘() { RB.data = Roomlist; MMPU.储存文件("./RoomListConfig.ini", JsonConvert.SerializeObject(RB)); }