1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #!/usr/bin/python2
# -*- coding:utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
import gst
class Player:
def __init__(self):
self.player = gst.Pipeline("player")
source = gst.element_factory_make('souphttpsrc', "source")
source.set_property('location', 'http://mp3.live.tv-radio.com/centpourcent/all/centpourcent-128k.mp3')
decoder = gst.element_factory_make('mad', "decoder")
conv = gst.element_factory_make('audioconvert', "converter")
sink = gst.element_factory_make('alsasink', "output")
self.player.add(source, decoder, conv, sink)
gst.element_link_many(source, decoder, conv, sink)
def play(self, *data):
print "Going to play..."
#@soup.play##Freeze
#Thread.new{@soup.play}.join##Freeze
#Thread.new{@soup.play}#Do not Freeze
self.player.set_state(gst.STATE_PLAYING)
print "Playing."
def stop(self, *data):
self.player.set_state(gst.STATE_NULL)
print "Stop."
class Gui:
def __init__(self, player):
self.player = player
bstop = gtk.Button('Stop')
bstop.connect('clicked', self.player.stop)
bplay = gtk.Button('Play')
bplay.connect('clicked', self.player.play)
box = gtk.HBox()
box.pack_start(bstop)
box.pack_start(bplay)
window = gtk.Window()
window.add(box)
window.show_all()
window.connect('destroy', self.quit)
def quit(self, *data):
self.player.stop()
gtk.main_quit()
player = Player()
gui = Gui(player)
gtk.main() |
Partager