Bonjour.

J'obtiens un bug assez dur à reproduire lorsque j'utilise conjointement ruby/gtk2 et ruby/gst ("bindings" pour GStreamer). J'ai circonscrit la reproduction du bug à script ruby d'une quarantaine de lignes. Lorsque le bug est reproduit, l'interface graphique "freeze". L'apparition du bug semble dépendre de la configuration de l'ordinateur. En particulier la présence d'un proxy semble supprimer le bug.

J'aimerai essayer de connaitre l'origine de ce bug. Pour éliminer les bibliothèques ruby de mes suspicions, j'aimerai tester le un script équivalent en python.

Quelqu'un pourrait-il traduire ce code ruby afin que je teste avec la même configuration ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#!/usr/bin/env ruby
# encoding: UTF-8
 
require 'gtk2'
require 'gst'
 
class Player
	def initialize
                @soup=Gst::ElementFactory.make('souphttpsrc')
	end
 
	def play
                @soup.location='http://mp3.live.tv-radio.com/centpourcent/all/centpourcent-128k.mp3'
		p "Going to play..."
		#@soup.play##Freeze
		#Thread.new{@soup.play}.join##Freeze
		Thread.new{@soup.play}#Do not Freeze
		p  "Playing."
	end
end
 
class Gui
	def initialize(player)
                @player=player
                @bstop=Gtk::Button.new('Stop')
                @bstop.signal_connect('clicked'){@player.stop}
                @bplay=Gtk::Button.new('Play')
                @bplay.signal_connect('clicked'){@player.play}
                @box=Gtk::HBox.new
                @box.pack_start(@bstop)
                @box.pack_start(@bplay)
                @window=Gtk::Window.new
                @window.add(@box)
                @window.show_all
                @window.signal_connect("delete_event"){Gtk.main_quit; true}
	end
end
 
player=Player.new
gui=Gui.new(player)
Gtk.main
Si vous avez des questions sur le code ruby, n'hésitez pas à les poser.