Python 2.7 GStreamer-ubuntu16对ubuntu14

Python 2.7 GStreamer-ubuntu16对ubuntu14,python-2.7,ubuntu-14.04,gstreamer,pygtk,ubuntu-16.04,Python 2.7,Ubuntu 14.04,Gstreamer,Pygtk,Ubuntu 16.04,这是一个非常奇怪的问题,我正在经历,没有解决办法的线索。 我正在为一个机器人做一个GUI,我需要一个视频播放器,可以快速退出并启动。我发现PyGTK库和GStreamer import os import gst, gtk, gobject class VideoPlayer: def __init__(self): self.window = gtk.Window() self.window.connect('destroy', self.on_des

这是一个非常奇怪的问题,我正在经历,没有解决办法的线索。 我正在为一个机器人做一个GUI,我需要一个视频播放器,可以快速退出并启动。我发现PyGTK库和GStreamer

import os
import gst, gtk, gobject

class VideoPlayer:
    def __init__(self):
        self.window = gtk.Window()
        self.window.connect('destroy', self.on_destroy)
        self.window.set_size_request(640, 480)

        self.drawingarea = gtk.DrawingArea()
        self.drawingarea.connect('realize', self.on_drawingarea_realized)
        self.window.add(self.drawingarea)

        self.playbin = gst.element_factory_make('playbin2')
        self.playbin.set_property('uri',"file:///home/anger.ogv") #filepath

        self.sink = gst.element_factory_make('xvimagesink')
        self.sink.set_property('force-aspect-ratio', True)
        self.playbin.set_property('video-sink', self.sink)

        self.bus = self.playbin.get_bus()
        self.bus.add_signal_watch()
        self.bus.connect("message::eos", self.on_finish)

        self.window.connect("destroy", gtk.main_quit)

        self.window.show_all()

        self.playbin.set_state(gst.STATE_PLAYING)

    def on_finish(self, bus, message):
        self.playbin.set_state(gst.STATE_NULL)
        gtk.main_quit()

    def on_destroy(self, window):
        self.playbin.set_state(gst.STATE_NULL)
        gtk.main_quit()

    def on_drawingarea_realized(self, sender):
        self.sink.set_xwindow_id(self.drawingarea.window.xid)


if __name__ == "__main__":
    VideoPlayer()
    gtk.main()
我必须承认,这是我在一个网站上找到的一个代码,它起了作用。我刚刚更改了文件路径。但当我从Ubuntu14切换到Ubuntu16时,它停止了工作。 我得到无错误,窗口打开正常,但视频无法播放。我完全不知道。问题是在Ubuntu 16和14之间gst的工作方式是否有一些变化?解决方案是什么