目标
本教程显示了如何使用GStreamer与时间相关的工具。尤其是:
- 如何从pipeline查询到流的总时间和当前播放的时间
- 如何在流内部实现跳转功能
介绍
GstQuery是向一个element或者pad询问一些信息的机制。在这个例子中我们会问pipeline是否支持跳转功能(实时流是不支持跳转功能的),如果支持跳转功能,那么在播放了10s之后跳转到另一个位置。
在前面的教程里,我们一旦建立pipeline并运行后,我们就是在等待ERROR或者EOS消息。这个例子里面我们修改一下这个部分,改成定时唤醒并查询pipeline当前播放的位置并在屏幕上显示出来。这个已经和播放器比较类似了,定时刷新UI。
最后,我们会查询流的总时间并且在变化后刷新。
示例代码
将此代码复制到一个名为basic-tutorial-4.c
(或在您的GStreamer安装中找到)的文本文件中。
basic-tutorial-4.c