0

我想使用 GI 库制作一个简单的音乐播放器,包括最近的 Gstreamer1.0。该界面仅由 2 个按钮(播放/暂停)和一个用于查找当前播放时间的刻度组成:

这是界面的简单屏幕

我非常了解管道和元素的东西,我还想出了如何寻找想要的播放时间(当用户更改比例的值时),但我想知道什么是自动更新滑块/比例的最佳方法文件正在播放。在这里使用旧 API实现的一种方法是使用一个计时器,该计时器定期读取当前玩家位置并更新滑块的位置:

Glib.timeout_add(100, update_slider_callback)

我觉得它不是很优雅,有没有更好的方法使用新的 GI API 来做到这一点?

编辑:对于任何好奇的人,我在这里实现了它

4

1 回答 1

1

至少在 pitivi 中大致是这样实现的,这是 gst / python 代码的一个很好的参考。

这是确切的位置:

https://git.gnome.org/browse/pitivi/tree/pitivi/utils/pipeline.py#n390

位置查询封装在自定义管道子类中,但代码类似。

顺便说一句,你应该看看这个 utils 文件夹,里面有很多好东西 :)

至于优雅,在主线程中重复查询位置对我来说似乎不是什么黑客行为。

于 2014-12-29T04:05:47.677 回答