All pastes #895965 Raw Edit

Anonymous

public python v1 · immutable
·published 2008-02-08 05:57 UTC
rendered paste body
import gobjectgobject.threads_init()import gstimport pygtkpygtk.require("2.0")import gtkimport sysdef new_pad_cb(element, pad, target):    dest_pad = target.get_compatible_pad(pad)    if dest_pad:        pad.link(dest_pad)# set up media pipelinesrc = gst.element_factory_make("filesrc")src.set_property("location", sys.argv[1])dec = gst.element_factory_make("decodebin2")aconv = gst.element_factory_make("audioconvert")sink = gst.element_factory_make("alsasink")volume = gst.element_factory_make("volume")bin = gst.Bin()bin.add(src, dec, aconv, sink, volume)src.link(dec)dec.connect("pad-added", new_pad_cb, volume)volume.link(aconv)aconv.link(sink)def buttonCb(button):    if button == playBtn:        bin.set_state(gst.STATE_PLAYING)    elif button == stopBtn:        bin.set_state(gst.STATE_READY)def volumeCb(scale):    volume.set_property("volume", scale.get_value())# UI codewindow = gtk.Window()window.set_size_request(320, 240)playBtn = gtk.Button("Play")playBtn.connect("clicked", buttonCb)stopBtn = gtk.Button("Stop")stopBtn.connect("clicked", buttonCb)volumeScale = gtk.HScale()volumeScale.set_range(0, 10)volumeScale.connect("value-changed", volumeCb)volumeScale.set_value(1)volumeScale.set_update_policy(gtk.UPDATE_CONTINUOUS)box = gtk.VBox()for widget in [playBtn, stopBtn, volumeScale]:    box.pack_start(widget)window.add(box)window.show_all()window.connect("destroy", gtk.main_quit)gtk.main()