【问题标题】:Windows Gstreamer ALSA Alternative?Windows Gstreamer ALSA 替代方案?
【发布时间】:2011-06-21 22:12:11
【问题描述】:

有谁知道可以在 Windows 上使用 gstreamer 的 ALSA 替代品,以及如何安装它,以及在哪里可以找到 Python 绑定(如果需要)? 谢谢xxx

【问题讨论】:

  • ALSA 是 Linux 使用的声音系统,所以我怀疑你可以在 Windows 上使用 ALSA 接收器。
  • SDL 在以独立于平台的方式抽象声音接口方面做得不错。 PyGame 包含一个 SDL 接口,可在许多平台上运行。当然,这样的抽象设置了许多限制,但也许它仍然对你有用。
  • @9000:您可能希望将您的评论转换为答案,以便 James 接受它。
  • @9000 是的,请按照克里斯蒂安的建议做 :)

标签: python windows gstreamer alsa


【解决方案1】:

似乎在 Windows 上,SDK 安装程序实际上并未将绑定安装到 Python 解释器可见的任何位置。您可以在sdk\bindings\python\v2.6\lib\site-packages 找到这些文件。将该目录的内容复制到 Python 安装的 site-packages,您应该可以导入该库。

【讨论】:

  • ImportError: DLL load failed: 找不到指定的模块。`
  • 好的,那你还需要把sdk/bindings/python/v2.6/lib/gstreamer-0.10的dll复制到你的Python2.6/DLLs
  • 你是从 IDLE 测试这个吗?复制 DLL 后是否重新启动 IDLE?我不确定还有什么问题,因为我自己刚刚尝试了这些步骤,import pygst 对我有用。你确定你有文件Python26/DLLs/libgstpython-v2.6.dll 吗?您使用的是 32 位还是 64 位版本的 Python?
  • @shang 我正在使用 32 位,我正在使用命令行,并且我确定我有 libgstpython-v2.6.dll :( 我在技术上被诅咒了......
  • @shang,我已经通过更改为测试版解决了我原来的问题,(这让我非常困扰,我原以为任何问题都会持续存在......)但我现在遇到的问题是现在在问题中定义xx 你有什么想法吗? :( xx
【解决方案2】:

9000 的答案,sdl 和 autoaudiosrc/sink 就是答案:)

【讨论】:

    【解决方案3】:

    SDL 在以独立于平台的方式抽象声音接口方面做得不错。 PyGame 包含一个 SDL 接口,可在许多平台上运行。当然,这种抽象设置了许多限制,但也许它仍然适合您。

    从评论转换而来。

    【讨论】:

      【解决方案4】:

      不确定这是否仍然相关,但我今天遇到了完全相同的问题。我通过使用“autoaudiosink”解决了这个问题。

      这样我在以下网站上得到了在 Windows XP 中工作的最小示例

      http://www.jonobacon.org/2006/08/28/getting-started-with-gstreamer-with-python/

      这是我的代码版本(除了 alsasink 基本相同)

      #!/usr/bin/python
      
      import pygst
      pygst.require("0.10")
      import gst
      import pygtk
      import gtk
      
      class Main:
          def __init__(self):
              self.pipeline = gst.Pipeline("mypipeline")
      
              self.audiotestsrc = gst.element_factory_make("audiotestsrc", "audio")
              self.pipeline.add(self.audiotestsrc)
      
              self.sink = gst.element_factory_make("autoaudiosink", "sink")
              self.pipeline.add(self.sink)
      
              self.audiotestsrc.link(self.sink)
      
              self.pipeline.set_state(gst.STATE_PLAYING)
      
      start=Main()
      gtk.main()
      

      希望对你有帮助。

      【讨论】:

      • 是的....我很久以前就搬到了 linux :D xx fedora 16 atm :) 现在如果我希望我可以使用 ALSA 接收器,但老实说我还没有xx 岁使用 gstreamer
      猜你喜欢
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 2015-02-22
      • 2011-12-05
      • 1970-01-01
      • 2012-06-13
      相关资源
      最近更新 更多