我想使用GI库制作一个简单的音乐播放器,包括最近的Gstreamer1.0。界面只包含2个按钮(播放/暂停)和一个用于查找当前播放时间的刻度:
我非常了解管道和元素的东西,我也想出了如何寻找想要的播放时间(当用户改变音阶的价值时),但我想知道什么是最好的方法文件播放时自动更新滑块/比例。使用旧API实现here的一种方法是使用定时读取当前玩家位置并更新滑块位置的计时器:
Glib.timeout_add(100, update_slider_callback)
我发现它不是很优雅,有没有更好的方法来使用新的GI API?
编辑:对于任何好奇的人,我实施了它here
答案 0 :(得分:1)
这至少是如何在pitivi中实现的,这是gst / python代码的一个很好的参考。
这是确切的位置:
https://git.gnome.org/browse/pitivi/tree/pitivi/utils/pipeline.py#n390
位置查询封装在自定义管道子类中,但代码类似。
你应该看看这个utils文件夹顺便说一句,那里有很多好东西:)
至于优雅,在主线程中重复查询位置对我来说似乎不是那么黑。