Пример #1
0
        private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Media Files|*.ts|All Files|*.*";

            if (DialogResult.OK == openFileDialog.ShowDialog())
            {
                fileName = openFileDialog.FileName;
                if (graphBuilder != null) {
                    CleanUp();
                    InfoQueue = new Queue<pane>();
                    cur_info = null;
                    dMode = DisplayMode.Normal;
                }
                Play(fileName);
            }
        }
Пример #2
0
        private void Video_timer_Tick(object sender, EventArgs e)
        {
            double time_s;
            int time_ms;
            mediaPos.get_CurrentPosition(out time_s);
            time_ms = (int)time_s * 1000;

            double totalTime;
            mediaPos.get_Duration(out totalTime);

            if( time_s >= totalTime){
                CleanUp();
                Play(fileName);
            }

            //mediaPos.g
            //显示播放时间
            if (mediaPos!= null)
            {
                int s = (int)time_s;
                int h = s / 3600;
                int m = (s - (h * 3600)) / 60;
                s = s - (h * 3600 + m * 60);

                this.TimeStatusLabel.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", h, m, s);

                //s = (int)m_objMediaPosition.CurrentPosition;
            }
            else
            {
                this.TimeStatusLabel.Text = "00:00:00";
            }

            //Time_label.Text = time_ms.ToString();

            ///处理私有信息
            //cur_info != null 并且 过了提示时间,则舍弃该信息
            if ( cur_info != null && iStatus==InfoStatus.Play  ) {
                //ButtonPbox.Visible = true;
                if (time_ms - cur_info.Pos > HINT_WAIT_TIME )
                {
                    cur_info = null;
                    ButtonPbox.Visible = false;
                    //this.KeyPreview = false;
                }
            }
            //TS_info cur_Info==null;
            if (InfoQueue.Count > 0)
            {
                pane tmp = InfoQueue.Peek();
                if ((time_ms >= tmp.Pos - HINT_OCCUR_TIME ) && (time_ms <= tmp.Pos + HINT_OCCUR_TIME))
                {
                    //cur_info = InfoQueue.Dequeue();
                    tmp = InfoQueue.Dequeue();

                    //如果在显示私有信息,则舍弃该条信息
                    if ( iStatus == InfoStatus.Play ){
                        cur_info = tmp;
                    //else
                        ButtonPbox.Visible = true;
                    }
                }
            }
        }
Пример #3
0
        private void Initial()
        {
            ButtonPbox.Visible = false;
            this.KeyPreview = true;
            //InfoQueue = new Queue<TS_info>();
            InfoQueue = new Queue<pane>();
            cur_info = null;
            dMode = DisplayMode.Normal;

            this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
            this.UpdateStyles();
        }
Пример #4
0
        private void Form1_KeyPress(object sender, KeyEventArgs e)
        {
            if (iStatus == InfoStatus.Question) {
                answer_label.Width  = 50;
                answer_label.Height = 10;
                //char tmp = cur_info.Answer + 32;
                Keys KeyAns;
                switch(cur_info.Answer){
                    case 'a':
                        KeyAns = Keys.F1;
                        break;
                    case 'b':
                        KeyAns = Keys.F2;
                        break;
                    case 'c':
                        KeyAns = Keys.F3;
                        break;
                    case 'd':
                        KeyAns = Keys.F4;
                        break;
                    default:
                        KeyAns = Keys.E;
                        break;
                }
                if (e.KeyCode == KeyAns) answer_label.Text = ANS_RIGHT;
                else answer_label.Text = ANS_WRONG+ char.ToUpper(cur_info.Answer);
                answer_label.Width = 0;
                answer_label.Height = 0;
                iStatus = InfoStatus.Show;
                return;
            }

            switch (e.KeyCode) {
                case Keys.F1:
                    if (ButtonPbox.Visible == true && iStatus == InfoStatus.Play)
                    {
                        zoomIn();
                        if (cur_info != null)
                        {
                            //message_label.AutoSize = true;
                            message_label.Width = 200;
                            message_label.Height = 200;
                            if (dMode == DisplayMode.Full) {
                                message_label.Width = 380;
                                message_label.Height = 600;
                            }

                            message_label.Text = cur_info.Text;
                            //message_label.AutoSize = true;

                            if (cur_info.Img != null)
                            {
                                //size
                                //pBox_img.Width=cur_info.Img.
                                pBox_img.Image = Image.FromFile(cur_info.Img);
                                pBox_img.Width = pBox_img.Image.Width;
                                pBox_img.Height = pBox_img.Image.Height;

                                //pBox_img.Width = 150;
                                //pBox_img.Height = 150;
                                if (dMode == DisplayMode.Full) {
                                    //pBox_img.Width = FimgSize;
                                    //pBox_img.Height = FimgSize;
                                }

                            }
                            if (cur_info.Type == pType.info) iStatus = InfoStatus.Show;
                            else iStatus = InfoStatus.Question;
                        }
                    }
                    break;
                case Keys.F2:
                    if (menuStrip1.Visible == true && iStatus == InfoStatus.Play)
                    {
                        this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
                        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

                        menuStrip1.Visible = false;
                        dMode = DisplayMode.Full;
                        Rectangle ret = Screen.GetWorkingArea(this);

                        /*
                        this.Video_panel.ClientSize = new Size(ret.Width, ret.Height);
                        this.Video_panel.Dock = DockStyle.Fill;
                        */

                        this.Video_panel.BringToFront();
                        setWindow();
                        this.Hide();
                        this.Show();
                        //showSize();
                    }
                    break;
                case Keys.F3:
                    if (menuStrip1.Visible == false && iStatus == InfoStatus.Play)
                    {
                        this.WindowState = System.Windows.Forms.FormWindowState.Normal;
                        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
                        dMode = DisplayMode.Normal;
                        setWindow();
                        menuStrip1.Visible = true;
                        this.Hide();
                        this.Show();
                        //showSize();
                    }
                    break;
                case Keys.F4:
                    if (ButtonPbox.Visible == true && iStatus == InfoStatus.Show)
                    {
                        message_label.Text = "";
                        message_label.Width = 0;
                        message_label.Height = 0;

                        answer_label.Text = "";
                        answer_label.Width = 0;
                        answer_label.Height = 0;

                        pBox_img.Image = null;
                        pBox_img.Width = 0;
                        pBox_img.Height = 0;

                        zoomOut();
                        ButtonPbox.Visible = false;
                        iStatus = InfoStatus.Play;
                        cur_info = null;
                    }
                    break;
                default:
                    break;
            }
        }
Пример #5
0
        public static void getInfo(Queue<pane> q, String fname)
        {
            if (fname.IndexOf("广") > 0) {
                pane p = new pane(pType.info);
                p.Img = (@"./scr/杜牧.jpg");
                p.Text = "  杜牧,字牧之,号称杜紫薇。晚唐诗人。晚唐时期.唐代文学家,后人称杜甫为'老杜',称杜牧为'小杜'。《阿房宫赋》亦颇有名。\n  杰出的诗人、散文家。后赴江西观察使幕,转淮南节度使幕,又入观察使幕。史馆修撰,膳部、比部、司勋员外郎,黄州、池州、睦州刺史等职,最终官至中书舍人。";
                p.Pos=2500;
                q.Enqueue(p);

                p = new pane(pType.question);
                p.Text = "该诗的背景是哪个朝代?\n  A.唐朝\n  B.宋朝\n  C.明朝\n  D.清朝";
                p.Answer='a';
                p.Pos = 15000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/tssbs.jpg");
                p.Text = "唐诗三百首\n定  价:¥88.00\n出 版 社:吉林出版集团有限责任公司\n出版时间:2009-11-1\n版  次:1\n页  数:189\n字  数:70000\n印刷时间:2009-11-1\n开  本:大16开\n纸  张:轻型纸\n印  次:1\nI S B N:9787546310527\n包  装:精装";
                p.Pos = 35000;
                q.Enqueue(p);

                p = new pane(pType.info);
                //p.Img = (@"./scr/tssbs.jpg");
                p.Text = "唐诗三百首\n定  价:¥88.00\n出 版 社:吉林出版集团有限责任公司\n出版时间:2009-11-1\n版  次:1\n页  数:189\n字  数:70000\n印刷时间:2009-11-1\n开  本:大16开\n纸  张:轻型纸\n印  次:1\nI S B N:9787546310527\n包  装:精装";
                p.Pos = 48000;
                q.Enqueue(p);
            }
            else if (fname.IndexOf("书") > 0) {
                pane p = new pane(pType.info);
                p.Text = "鼎是青铜器的最重要青铜器物种之一,是用以烹煮肉和盛贮肉类的器具。三代及秦汉延续两千多年,鼎一直是最常见和最神秘的礼器。";
                p.pos = 10000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Text = "篆书是大篆、小篆的统称。大篆指甲骨文、金文、籀文、六国文字,它们保存着古代象形文字的明显特点。小篆也称“秦篆”,是秦国的通用文字,大篆的简化字体,其特点是形体匀逼齐整、字体较籀文容易书写。在汉文字发展史上,它是大篆由隶、楷之间的过渡。";
                p.pos = 50000;
                q.Enqueue(p);
                //q.Enqueue(new TS_info(20000, "篆书是大篆、小篆的统称。大篆指甲骨文、金文、籀文、六国文字,它们保存着古代象形文字的明显特点。小篆也称“秦篆”,是秦国的通用文字,大篆的简化字体,其特点是形体匀逼齐整、字体较籀文容易书写。在汉文字发展史上,它是大篆由隶、楷之间的过渡。"));
            }
            else if (fname.IndexOf("足球") > 0) {
                pane p = new pane(pType.info);
                p.Text = "天下足球\nCCTV5\n播放时间:每周五21:30";
                p.pos = 15000;
                q.Enqueue(p);

                p = new pane(pType.question);
                //p.Img = (@"./scr/梅西.jpg");
                p.Text = "上赛季皇马巴萨的胜负情况如何?\nA.皇马全胜\nB.皇马胜率高\nC.巴萨胜率高\nD.巴萨全胜";
                p.answer = 'c';
                p.pos = 30000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/梅西.jpg");
                p.Text = "里奥内尔·安德雷斯·梅西(Lionel Andrés Messi),生于1987年6月24日,是一名阿根廷足球运动员。\n司职前锋同时可以兼任攻击型中场,现效力于巴塞罗那,他被大众称为“新马拉多纳“。";
                p.pos = 39000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/C罗.jpg");
                p.Text = "克里斯蒂亚诺·罗纳尔多(Cristiano Ronaldo,简称“C·罗纳尔多”或“C罗”),是一名葡萄牙足球运动员,司职边锋同时也可兼任中锋.\n现效力于西甲豪门皇家马德里队,同时身兼葡萄牙国家队的队长。他带球速度极快,善于突破和射门,拥有强悍的身体素质,技术都非常全面,是当今世界足坛最杰出的球星之一。\nC罗18岁加入英超曼联,6年来为曼联赢得众多主要赛事荣誉,也获得不少个人荣誉,其中在2007-08年赛季个人攻入42球,帮助曼联获得欧冠冠军和卫冕英超冠军,因此荣膺欧洲金球奖和世界足球先生,是首位在英超诞生的世界足球先生。";
                p.pos = 85000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/飞科.jpg");
                p.Text = "飞科剃须刀\n全方位浮动剃须\n三环弧面刀网\n全身水洗";
                p.pos = 105000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/多特蒙德.jpg");
                p.Text = "2011-2012德甲联赛冠军为多特蒙德";
                p.pos = 118000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/诺坎普球场.jpg");
                p.Text = "诺坎普球场,国内亦译为坎帕诺球场,是西甲豪门巴塞罗那队的主场。\n1957年完工时只能容纳93053名观众(原计划容纳150000人,后被取消),现能容纳109815名观众。球场面积为107x72米(现在诺坎普是 105x68,符合欧足联的要求)。主要材料为混凝土和钢铁。";
                p.pos = 226000;
                q.Enqueue(p);

                p = new pane(pType.question);
                p.Text = "这个角球会不会进?\nA.会\nB.不会\n";
                p.Answer='B';
                p.pos = 304000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/赫迪拉.jpg");
                p.Text = "萨米·赫迪拉(Sami Khedira,1987年4月4日-)出生在斯图加特,是一名德国足球运动员,2010年夏天以1400万欧元的身价从德甲的斯图加特足球俱乐部转会至西甲豪门皇家马德里。";
                p.pos = 461000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/哈维.jpg");
                p.Text = "哈维·埃尔南德兹·克雷乌斯(Xavier Hernandez Creus,1980年1月25日-),是一名西班牙足球运动员,现在效力于西班牙的巴塞罗那足球俱乐部,司职中场。\n哈维·埃尔南德兹·克雷乌斯作为主力球员参加了世界杯、欧洲杯等比赛并获得欧洲杯最佳球员等荣誉的西班牙足球运动员。2012年7月2日,助西班牙队4-0战胜意大利队,夺得第14届欧洲杯冠军。";
                p.pos = 882000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/多特蒙德.jpg");
                p.Text = "普鲁士多特蒙德1909球类比赛俱乐部合资股份有限公司(德语:Ballspiel-Verein Borussia 1909 e.V. Dortmund,BVB),位于德国多特蒙德的足球俱乐部,位于德国鲁尔区多特蒙德市。\n多特蒙德在1997年曾经夺得过一次欧洲冠军联赛,这也是德甲除拜仁慕尼黑以外的球队最近的一次获得冠军杯。多特蒙德同沙尔克04之间的比赛被称为“鲁尔区德比”,和拜仁慕尼黑之间的比赛则是“德国国家德比”。";
                p.pos = 1332000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/香川真司.jpg");
                p.Text = "香川真司(1989年3月17日-),出生于日本神户市,足球运动员,2006年出道于日本职业足球联赛的大阪樱花足球俱乐部,于2010年7月转会德甲球队多特蒙德,后获得2010-2011赛季德甲半程最佳球员。\n2012年-2013年赛季,香川真司正式披上红魔战袍,为曼联效力。";
                p.pos = 1529000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/法兰西大球场.jpg");
                p.Text = "法兰西大球场(Stade de France)位于法国巴黎市郊的圣丹尼,是一个多种用途的大型运动场地,可容纳8万名观众。法兰西大球场是为1998年世界杯足球赛而兴建,并曾作为1998年世界杯决赛举行场地。\n1998年7月12日,法国在世界杯决赛以3-0击败巴西,在主场取得首次世界杯冠军。2003年则曾举办世界田径锦标赛。";
                p.pos = 2420000;
                q.Enqueue(p);
            }
        }
Пример #6
0
        public static void getInfo(Queue<pane> q, String fname)
        {
            if (fname.IndexOf("广") > 0) {
                pane p = new pane(pType.info);
                p.Img = (@"./scr/杜牧.jpg");
                p.Text = "  杜牧,字牧之,号称杜紫薇。晚唐诗人。晚唐时期.唐代文学家,后人称杜甫为'老杜',称杜牧为'小杜'。《阿房宫赋》亦颇有名。\n  杰出的诗人、散文家。后赴江西观察使幕,转淮南节度使幕,又入观察使幕。史馆修撰,膳部、比部、司勋员外郎,黄州、池州、睦州刺史等职,最终官至中书舍人。";
                p.Pos=2500;
                q.Enqueue(p);

                p = new pane(pType.question);
                p.Text = "该诗的背景是哪个朝代?\n  A.唐朝\n  B.宋朝\n  C.明朝\n  D.清朝";
                p.Answer='a';
                p.Pos = 15000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Img = (@"./scr/tssbs.jpg");
                p.Text = "唐诗三百首\n定  价:¥88.00\n出 版 社:吉林出版集团有限责任公司\n出版时间:2009-11-1\n版  次:1\n页  数:189\n字  数:70000\n印刷时间:2009-11-1\n开  本:大16开\n纸  张:轻型纸\n印  次:1\nI S B N:9787546310527\n包  装:精装";
                p.Pos = 35000;
                q.Enqueue(p);

                p = new pane(pType.info);
                //p.Img = (@"./scr/tssbs.jpg");
                p.Text = "唐诗三百首\n定  价:¥88.00\n出 版 社:吉林出版集团有限责任公司\n出版时间:2009-11-1\n版  次:1\n页  数:189\n字  数:70000\n印刷时间:2009-11-1\n开  本:大16开\n纸  张:轻型纸\n印  次:1\nI S B N:9787546310527\n包  装:精装";
                p.Pos = 48000;
                q.Enqueue(p);
            }
            else if (fname.IndexOf("书") > 0) {
                pane p = new pane(pType.info);
                p.Text = "鼎是青铜器的最重要青铜器物种之一,是用以烹煮肉和盛贮肉类的器具。三代及秦汉延续两千多年,鼎一直是最常见和最神秘的礼器。";
                p.pos = 10000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Text = "篆书是大篆、小篆的统称。大篆指甲骨文、金文、籀文、六国文字,它们保存着古代象形文字的明显特点。小篆也称“秦篆”,是秦国的通用文字,大篆的简化字体,其特点是形体匀逼齐整、字体较籀文容易书写。在汉文字发展史上,它是大篆由隶、楷之间的过渡。";
                p.pos = 50000;
                q.Enqueue(p);
                //q.Enqueue(new TS_info(20000, "篆书是大篆、小篆的统称。大篆指甲骨文、金文、籀文、六国文字,它们保存着古代象形文字的明显特点。小篆也称“秦篆”,是秦国的通用文字,大篆的简化字体,其特点是形体匀逼齐整、字体较籀文容易书写。在汉文字发展史上,它是大篆由隶、楷之间的过渡。"));
            }
            else if (fname.IndexOf("足球") > 0) {
                pane p = new pane(pType.info);
                p.Text = "天下足球\nCCTV5\n播放时间:每周五21:30";
                p.pos = 10000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Text = "国家德比\n皇家马德里VS巴塞罗那\n毫无疑问皇马和巴萨是西甲历史上最成功的两支球队,可以说他们统治了西班牙足坛。";
                p.pos = 40000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Text = "目前欧洲联赛情况:\n意甲:出结果\n西甲:明朗\n德甲:扑朔迷离";
                p.pos = 100000;
                q.Enqueue(p);

                p = new pane(pType.question);
                p.Text = "穆里尼奥执教过的皇马战胜过几次巴萨?\nA.1次\nB.两次\nC.三次\nD.四次";
                p.Answer='D';
                p.pos = 150000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Text = "皇马首发\n门将 卡西利亚斯(队长)\n后卫 马塞洛 佩佩 拉莫斯 阿贝罗亚\n后腰 阿隆索 赫迪拉\n前卫 C罗 卡卡/厄齐尔 迪马利亚\n中锋 本泽马/伊瓜因";
                p.pos = 200000;
                q.Enqueue(p);

                p = new pane(pType.info);
                p.Text = "门将 巴尔德斯\n后卫 阿尔维斯 皮克 普约尔 阿比达尔\n后腰 布斯克茨\n中场 哈维 伊涅斯塔\n前锋 梅西 法布雷加斯 桑切斯";
                p.pos = 300000;
                q.Enqueue(p);

                p = new pane(pType.question);
                p.Text = "这个球进了吗?\nA.进   B.没进";
                p.Answer = 'A';
                p.pos = 1050000;
                q.Enqueue(p);
            }
        }