Example #1
0
    public VideoApp(string filename)
    {
        Stage stage = Stage.Default;

        stage.Color = new Color(0x00, 0x00, 0x00, 0x00);
        stage.SetSize(1200, 1024);

        vtexture          = new GstVideoTexture();
        vtexture.SyncSize = false;

        // add size changed call back here
        vtexture.SizeChange += HandleSizeChange;

        vtexture.Filename = filename;
        control           = new Group();

        // panel
        control_bg = new Texture("vid-panel.png");

        // play button
        control_play = new Texture("media-actions-start.png");

        // pause button
        control_pause = new Texture("media-actions-pause.png");

        control_seek1           = new Rectangle(new Color(73, 74, 77, 0xee));
        control_seek2           = new Rectangle(new Color(0xcc, 0xcc, 0xcc, 0xff));
        control_seekbar         = new Rectangle(new Color(73, 74, 77, 0xee));
        control_seekbar.Opacity = 0x99;

        // label with name
        string text = System.IO.Path.GetFileName(filename);

        control_label       = new Label("Sans Bold 24", text);
        control_label.Color = new Color(73, 74, 77, 0xee);

        control.AddActor(control_bg);
        control.AddActor(control_play);

        control.AddActor(control_pause);
        control.AddActor(control_seek1);
        control.AddActor(control_seek2);
        control.AddActor(control_seekbar);
        control.AddActor(control_label);

        control.Opacity = 0xee;
        control_play.SetPosition(30, 30);
        control_pause.SetPosition(30, 30);

        control_seek1.SetSize(SEEK_W + 10, SEEK_H + 10);
        control_seek1.SetPosition(200, 100);

        control_seek2.SetSize(SEEK_W, SEEK_H);
        control_seek2.SetPosition(205, 105);

        control_seekbar.SetSize(0, SEEK_H);
        control_seekbar.SetPosition(205, 105);

        control_label.SetPosition(200, 40);

        stage.AddActor(vtexture);
        stage.AddActor(control);

        int x = (int)((stage.Width - control.Width) / 2);
        int y = (int)(stage.Height - (stage.Height / 3));

        control.SetPosition(x, y);

        controls_tl            = new Timeline(10, 30);
        controls_tl.NewFrame  += HandleControlTlNewFrame;
        controls_tl.Completed += HandleControlTimelineCompleted;

        effect1_tl           = new Timeline(30, 90);
        effect1_tl.NewFrame += HandleEffect1TlNewFrame;

        GLib.Timeout.Add(1000, new GLib.TimeoutHandler(Tick));
        stage.MotionEvent      += delegate { ShowControls(true); };
        stage.ButtonPressEvent += HandleButtonPressEvent;
        stage.KeyReleaseEvent  += HandleKeyReleaseEvent;

        vtexture.Playing = true;
        stage.ShowAll();
        control_play.Hide();
    }
Example #2
0
    public VideoApp(string filename)
    {
        Stage stage = Stage.Default;
        stage.Color = new Color (0x00, 0x00, 0x00, 0x00);
        stage.SetSize (1200, 1024);

        vtexture = new GstVideoTexture ();
        vtexture.SyncSize = false;

        // add size changed call back here
        vtexture.SizeChange += HandleSizeChange;

        vtexture.Filename = filename;
        control = new Group ();

        // panel
        control_bg = new Texture ("vid-panel.png");

        // play button
        control_play = new Texture ("media-actions-start.png");

        // pause button
        control_pause = new Texture ("media-actions-pause.png");

        control_seek1 = new Rectangle (new Color (73, 74, 77, 0xee));
        control_seek2 = new Rectangle (new Color (0xcc, 0xcc, 0xcc, 0xff));
        control_seekbar = new Rectangle (new Color (73, 74, 77, 0xee));
        control_seekbar.Opacity = 0x99;

        // label with name
        string text = System.IO.Path.GetFileName (filename);
        control_label = new Label ("Sans Bold 24", text);
        control_label.Color = new Color (73, 74, 77, 0xee);

        control.AddActor (control_bg);
        control.AddActor (control_play);

        control.AddActor (control_pause);
        control.AddActor (control_seek1);
        control.AddActor (control_seek2);
        control.AddActor (control_seekbar);
        control.AddActor (control_label);

        control.Opacity = 0xee;
        control_play.SetPosition (30, 30);
        control_pause.SetPosition (30, 30);

        control_seek1.SetSize (SEEK_W + 10, SEEK_H + 10);
        control_seek1.SetPosition (200, 100);

        control_seek2.SetSize (SEEK_W, SEEK_H);
        control_seek2.SetPosition (205, 105);

        control_seekbar.SetSize (0, SEEK_H);
        control_seekbar.SetPosition (205, 105);

        control_label.SetPosition (200, 40);

        stage.AddActor (vtexture);
        stage.AddActor (control);

        int x = (int)((stage.Width - control.Width) / 2);
        int y = (int)(stage.Height - (stage.Height / 3));

        control.SetPosition (x, y);

        controls_tl = new Timeline (10, 30);
        controls_tl.NewFrame += HandleControlTlNewFrame;
        controls_tl.Completed += HandleControlTimelineCompleted;

        effect1_tl = new Timeline (30, 90);
        effect1_tl.NewFrame += HandleEffect1TlNewFrame;

        GLib.Timeout.Add (1000, new GLib.TimeoutHandler (Tick));
        stage.MotionEvent += delegate { ShowControls (true); };
        stage.ButtonPressEvent += HandleButtonPressEvent;
        stage.KeyReleaseEvent += HandleKeyReleaseEvent;

        vtexture.Playing = true;
        stage.ShowAll ();
        control_play.Hide ();
    }