コード例 #1
0
ファイル: Form1.cs プロジェクト: wangke1220/DDTV
        public void SaveRoomInfo()
        {
            RoomBox RB = new RoomBox()
            {
                data = Roomlist
            };                                          //房间信息

            MMPU.SaveFile("./RoomListConfig.ini", JsonConvert.SerializeObject(RB));
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: famisy/DDTV
        public void SaveRoomInfo()
        {
            RoomBox RB = new RoomBox()
            {
                data = Roomlist
            };                                             //房间信息

            MMPU.SaveFile(MMPU.RoomConfigFile, JsonConvert.SerializeObject(RB));
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: famisy/DDTV
 private void Form1_Load(object sender, EventArgs e)
 {
     MMPU.InitializeRoomConfigFile();
     CheckVersion();
     egg();
     InitializeRoomList();
     TimelyRefreshingRoomStatus();
     initializationVLC();
     streamNumber++;
 }
コード例 #4
0
ファイル: Form1.cs プロジェクト: famisy/DDTV
 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
 {
     try
     {
         MMPU.DelFile("./debug.log");
     }
     catch (Exception)
     {
     }
 }
コード例 #5
0
ファイル: Form1.cs プロジェクト: famisy/DDTV
 /// <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();
 }
コード例 #6
0
        //检测是否在直播
        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);
        }
コード例 #7
0
ファイル: Form1.cs プロジェクト: wangke1220/DDTV
        /// <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();
        }
コード例 #8
0
        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)
            {
            }
            更新房间列表();
        }
コード例 #9
0
ファイル: Form1.cs プロジェクト: famisy/DDTV
        /// <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();
        }
コード例 #10
0
        /// <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();
        }
コード例 #11
0
ファイル: Form1.cs プロジェクト: famisy/DDTV
        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();
        }
コード例 #12
0
ファイル: Form1.cs プロジェクト: famisy/DDTV
 private void DloFile(string RoomId, string path)
 {
     MMPU.HttpDownloadFile(getUriSteam.GetTrueUrl(RoomId), path);
 }
コード例 #13
0
ファイル: Form1.cs プロジェクト: famisy/DDTV
        /// <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();
        }
コード例 #14
0
 public void 储存房间信息到硬盘()
 {
     RB.data = Roomlist;
     MMPU.储存文件("./RoomListConfig.ini", JsonConvert.SerializeObject(RB));
 }