#!/usr/bin/python import pygst pygst.require('0.10') import gst import time import gtk, sys DEVICE = "hw:1" index = 0 def new_pad(elem, pad): global index newqueue = gst.element_factory_make("queue") newmux = gst.element_factory_make("oggmux") newenc = gst.element_factory_make("vorbisenc") newsink = gst.element_factory_make("filesink") newsink.set_property("location", str(index) + ".ogg") recbin.add(newqueue) recbin.add(newmux) recbin.add(newenc) recbin.add(newsink) pad.link(newqueue.get_pad("sink")) newqueue.link(newenc) newenc.link(newmux) newmux.link(newsink) index += 1 print pad def stop(widget): recbin.set_state(gst.STATE_NULL) sys.exit(0) recbin = gst.element_factory_make("bin") src = gst.element_factory_make("alsasrc") src.set_property("device", DEVICE) conv = gst.element_factory_make("audioconvert") split = gst.element_factory_make("deinterleave") recbin.add(src) recbin.add(split) recbin.add(conv) src.link(conv) conv.link(split) split.connect("pad-added", new_pad) print "Pipeline constructed..." recbin.set_state(gst.STATE_PLAYING) win = gtk.Window() button = gtk.Button("Stop") win.add(button) button.connect("clicked", stop) win.show() button.show() print "Recording." gtk.main()