将代码从 pygst 传输到 pyGi

Transferring code from pygst to pyGi

我想构建一个从地址流式传输广播的程序。我写了下面的代码:

尝试: 来自 gi.repository 进口消费税 除了 AttributeError 为 e: 通过

def on_tag(bus, msg):
    taglist = msg.parse_tag()
    print 'on_tag:'
    for key in taglist.keys():
        print '\t%s = %s' % (key, taglist[key])

music_stream_uri = 'http://213.8.143.168/91fmAudio'
player = Gst.element_factory_make("playbin", "player")
player.set_property('uri', music_stream_uri)
player.set_state(Gst.STATE_PLAYING)

我做的时候效果很好

import pygst    
pygst.require("0.10")
import gst

但是因为它给了我几个 AttributeError 并且警告声称该模块正在弃用我切换到 pyGi 并导入

from pi.repository import Gst

但是我得到了错误

Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.1\helpers\pydev\pydevd.py", line 2222, in <module>
    globals = debugger.run(setup['file'], None, None)
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.1\helpers\pydev\pydevd.py", line 1648, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:/Danis/radio/radio.py", line 20, in <module>
    player = Gst.element_factory_make("playbin", "player")
  File "C:\Python27\lib\site-packages\gi\module.py", line 320, in __getattr__
    return getattr(self._introspection_module, name)
  File "C:\Python27\lib\site-packages\gi\module.py", line 139, in __getattr__
self.__name__, name))
AttributeError: 'gi.repository.Gst' object has no attribute   'element_factory_make'

我想知道 pi.Gst 中的哪个命令相当于 pygst 的命令?有人知道如何将这段代码转移到 PyGi 吗?

我建议您安装一个带有 Tab 完成功能的解释器,例如 ipython 来查找方法。您将在 http://lazka.github.io/pgi-docs/

的 python 中找到内省库的文档

关于你的具体问题,调用是Gst.ElementFactory.make ()

干杯!