2

我正在创建一个流应用程序,使用带有 TCP 管道的 GStreamer,我实现了启动、暂停和停止。

但问题是,我无法寻找,我尝试从服务器端更改播放值,然后我在客户端尝试,最后尝试同时更改两者的值,但在所有情况下它不起作用。我什至尝试暂停播放然后继续,但没有任何反应。

我在搜索和音量方面遇到了这个问题。请任何帮助,我到处搜索,但找不到任何有用的东西。

这是我用来寻找的代码

self.pipeline.seek_simple(gst.FORMAT_TIME, gst.SEEK_FLAG_FLUSH, time)

4

2 回答 2

0

也许你忘了让总线监听搜索事件。在设置管道后尝试将其放入:

self.bus = self.pipeline.get_bus()
self.bus.add_signal_watch()   

如果这不起作用,请发布更多代码。

于 2012-12-12T21:36:36.230 回答
0

如果您还没有找到它,也许这可以解决问题:

在 Gstreamer 中查找是通过 seek() 和 seek_simple() 方法完成的。为了能够进行搜索,您还需要告诉 Gstreamer 它应该进行什么样的搜索。在下面的示例中,我们将使用 gst.FORMAT_TIME 格式常量,您可能会猜到它会进行时间搜索。:D 我们还将使用 query_duration() 和 query_position() 方法来获取文件长度以及文件当前播放了多长时间。Gstreamer 默认使用纳秒,所以你必须适应它。

这是一个示例:使用 GStreamer 搜索

于 2010-11-09T00:44:55.960 回答