我正在尝试播放一段视频,并有一个按钮可以将视频切换到一个新的视频,在某个点开始新的视频。我没有写过很多用户界面或视频相关的代码。在
我有以下那种作品(非常精巧):
class Main(gobject.GObject):
def __init__(self):
self.player = gst.element_factory_make('playbin', 'VideoPlayer')
#.. pygtk UI/Button code
def next_video(self):
self.player.set_state(gst.STATE_NULL)
self.player.set_property('uri', 'next_video_path')
self.player.set_state(gst.STATE_PAUSED)
end = time.time() + 1
while time.time() < end:
pass
self.player.seek_simple(gst.FORMAT_TIME, gst.SEEK_FLAG_FLUSH, 100000000000)
self.player.set_state(gst.STATE_PLAYING)
if __name__ == "__main__":
Main(sys.argv)
gtk.main()
几点:
很明显,我想要一个更干净、更可靠的方法。在
TL;DR:如何在pygtk窗口中从视频切换到视频,从视频中的任意点开始?
不要等待一秒钟,而是使用类似于
self.player.get_state(timeout=3*gst.SECOND)
的方法等待gst.STATE_PAUSED
的切换完成。在使用超时是因为如果发生错误,而GStreamer无法成功地更改管道状态,那么没有超时的
get_state
将永远处于等待状态。在相关问题 更多 >
编程相关推荐