Форум сайта python.su
В следующем коде не приходит сообщение с именем “level” от GstLevel. Как его получить или что я делаю не так?
import gi gi.require_version('Gst', '1.0') from gi.repository import GObject, Gst, Gtk GObject.threads_init() Gst.init(None) class MyLPlayer(object): def __init__(self): self.pipeline = Gst.Pipeline.new(None) self.bus = self.pipeline.get_bus() self.bus.add_signal_watch() self.bus.connect('message', self.show_peak) self.playbin = Gst.ElementFactory.make('playbin', 'Multimedia Player') self.volume = Gst.ElementFactory.make('volume', 'volume') self.level = Gst.ElementFactory.make('level', 'audiolevel') if not self.pipeline.add(self.playbin): print('NOT') if not self.pipeline.add(self.volume): print('NOT') if not self.pipeline.add(self.level): print('NOT') self.playbin.set_property('uri', 'http://icecast.omroep.nl:80/radio1-bb-mp3') self.pipeline.set_state(Gst.State.PLAYING) def show_peak(self, bus, message): s = Gst.Message.get_structure(message) n = Gst.Structure.get_name(s) if n == 'level': s = Gst.Structure.get_value(n, 'rms') print(s) def _run(self): GObject.MainLoop().run() p = MyLPlayer() p._run()
Офлайн