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(); }
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 (); }