Python与Gstreamer
我正在创建一个流媒体应用程序,使用GStreamer和TCP管道,并且我实现了开始、暂停和停止功能。
但是问题是,我无法进行快进或快退。我试着在服务器端改变播放的值,然后又在客户端尝试,最后还同时在两边都改,但无论哪种情况都不行。我甚至尝试过暂停播放再继续,但也没有任何反应。
我在快进和音量方面都遇到了这个问题。请问有什么帮助吗?我到处搜索过,但没有找到任何有效的解决办法。
这是我用来进行快进的代码:
self.pipeline.seek_simple(gst.FORMAT_TIME, gst.SEEK_FLAG_FLUSH, time)
2 个回答
0
可能你忘了让总线监听寻址事件。试着在设置好你的管道后加上这个:
self.bus = self.pipeline.get_bus()
self.bus.add_signal_watch()
如果这样还不行,那请发更多的代码过来。
0
也许这能帮到你,如果你还没找到解决办法的话:
在Gstreamer中,寻找特定位置是通过seek()和seek_simple()这两个方法来实现的。要进行寻找,你还需要告诉Gstreamer你想要什么样的寻找方式。在下面的例子中,我们将使用一个叫做gst.FORMAT_TIME的格式常量,顾名思义,这个常量是用来进行时间寻找的。:D 我们还会用到query_duration()和query_position()这两个方法,分别来获取文件的总长度和当前播放了多长时间。Gstreamer默认使用纳秒作为时间单位,所以你需要对此进行调整。
这里有一个例子: 使用GStreamer进行寻找