python-examples: b1e0f2198061df517eecfa05a36706333b9ef5ee
1: import sys, os, pygtk, gtk, gobject, pygst, gst
2:
3: class GTK_Main:
4:
5: def __init__(self):
6: window = gtk.Window(gtk.WINDOW_TOPLEVEL)
7: #vbox = gtk.VBox()
8: #window.add(vbox)
9: #hbox = gtk.HBox()
10: #vbox.pack_start(hbox, False)
11: #self.entry = gtk.Entry()
12: #hbox.add(self.entry)
13: #self.button = gtk.Button("Start")
14: #hbox.pack_start(self.button, False)
15: #self.button.connect("clicked", self.start_stop)
16: self.movie_window = gtk.DrawingArea()
17: #vbox.add(self.movie_window)
18:
19: window.add(self.movie_window)
20:
21: window.show_all()
22:
23: self.player = gst.element_factory_make("playbin", "player")
24: bus = self.player.get_bus()
25: bus.add_signal_watch()
26: bus.enable_sync_message_emission()
27: bus.connect('message', self.on_message)
28: bus.connect('sync-message::element', self.on_sync_message)
29:
30:
31: def start_stop(self, w):
32: #if self.button.get_label() == "Start":
33: # filepath = self.entry.get_text()
34: # if os.path.exists(filepath):
35: # self.button.set_label("Stop")
36: # self.player.set_property('uri', "file://" + filepath)
37: # self.player.set_state(gst.STATE_PLAYING)
38: #else:
39: # self.player.set_state(gst.STATE_NULL)
40: # self.button.set_label("Start")
41: self.player.set_property('uri', "file:///home/chris/Files/Music Videos/Sonata Arctica - Don't Say A Word")
42: self.player.set_state(gst.STATE_PLAYING)
43:
44: def on_message(self, bus, message):
45: t = message.type
46: if t == gst.MESSAGE_EOS:
47: self.player.set_state(gst.STATE_NULL)
48: #self.button.set_label("Start")
49: elif t == gst.MESSAGE_ERROR:
50: self.player.set_state(gst.STATE_NULL)
51: #self.button.set_label("Start")
52:
53: def on_sync_message(self, bus, message):
54: if message.structure is None:
55: return
56: message_name = message.structure.get_name()
57: if message_name == 'prepare-xwindow-id':
58: imagesink = message.src
59: imagesink.set_property('force-aspect-ratio', True)
60: imagesink.set_xwindow_id(self.movie_window.window.xid)
61:
62: GTK_Main()
63: gtk.gdk.threads_init()
64: gtk.main()
Generated by git2html.