- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在运行 python 2.6 和 PyGST(最新可用于 Python 2.6)。我已经安装了所有插件 - 好的、坏的和丑陋的。
我有以下代码:
import sys, os
import pygtk, gtk, gobject
import pygst
pygst.require("0.10")
import gst
class GTK_Main:
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title("Audio-Player")
window.set_default_size(300, -1)
window.connect("destroy", gtk.main_quit, "WM destroy")
vbox = gtk.VBox()
window.add(vbox)
self.entry = gtk.Entry()
vbox.pack_start(self.entry, False, True)
self.button = gtk.Button("Start")
self.button.connect("clicked", self.start_stop)
vbox.add(self.button)
window.show_all()
self.player = gst.element_factory_make("playbin2", "player")
fakesink = gst.element_factory_make("fakesink", "fakesink")
self.player.set_property("video_sink", fakesink)
bus = self.player.get_bus()
bus.add_signal_watch()
bus.connect("message", self.on_message)
def start_stop(self, w):
if self.button.get_label() == "Start":
filepath = self.entry.get_text()
if os.path.isfile(filepath):
self.button.set_label("Stop")
self.player.set_property("uri", filepath)
self.player.set_state(gst.STATE_PLAYING)
else:
self.player.set_state(gst.STATE_NULL)
self.button.set_label("Start")
def on_message(self, bus, message):
t = message.type
if t == gst.MESSAGE_EOS:
self.player.set_state(gst.STATE_NULL)
self.button.set_label("Start")
elif t == gst.MESSAGE_ERROR:
self.player.set_state(gst.STATE_NULL)
err, debug = message.parse_error()
print "Error: %s" % err, debug
self.button.set_label("Start")
GTK_Main()
gtk.gdk.threads_init()
gtk.main()
但是,当我运行此模块并尝试打开文件时,出现以下错误。
Error: Your GStreamer installation is missing a plug-in. ..........\Source\gst-plugins-base\gst\playback\gsturidecodebin.c(991): gen_source_element (): /GstPlayBin2:player/GstURIDecodeBin:uridecodebin0
我该如何纠正这个问题?
编辑:第一个答案适用于 Ubuntu,但不适用于 Windows。解决 Windows 问题的人将获得赏金。
最佳答案
您需要的是完整的 uri:如果您只处理本地文件系统上的文件并且只想插入文件路径,请更改行
self.player.set_property("uri", filepath)
像这样:
self.player.set_property("uri", "file://"+filepath)
并且:GST 有一些例程可以更好地处理 uri 而不是刚刚添加的 'file://'
。 A good tutorial is here
关于python - 缺少 PyGST 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6975374/
我正在运行 python 2.6 和 PyGST(最新可用于 Python 2.6)。我已经安装了所有插件 - 好的、坏的和丑陋的。 我有以下代码: import sys, os import pyg
我在 Ubuntu 14.04 和 Python 2.7.13 上使用 virtualenv,我正在尝试让 import pygst 工作(我是一个完整的 Python 菜鸟)。 我下载了: http
我目前正在尝试捆绑这个极其简单的 python 脚本(player.py): #!/usr/bin/env python import sys, os import gobject, glib imp
我正在使用 Ubuntu 13.04 并安装了 python 2.7 和 3.3.2。我最近开始使用 python 3,但是当我尝试导入“pygst”gstreamer 模块时,出现错误: Impor
我有一个基于 gstreamer 和 dbus 的 python 音频播放器 http://sourceforge.net/p/autoradiobc/code/210/tree/trunk/auto
我是一名优秀的程序员,十分优秀!