| 12
 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