2010-04-24 89 views
2

我創建了一個使用GStreamer和TCP管道的流應用程序,並且我實現了啓動,暫停和停止。Python和Gstreamer

但問題是,我無法尋求,我試圖改變從服務器端的播放值,然後我試圖在客戶端,最後試圖在兩個同時更改值,但在任何情況下都不起作用。我甚至試圖暫停播放,然後繼續,但沒有任何反應。

我遇到這個問題的查找和音量。任何幫助,我到處搜索,但我找不到任何工作。

這是我使用的尋求

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

+1

我很想回答你的問題,但它確實缺乏很多信息。向我們展示一個我們可以運行的完整示例。 – 2010-04-27 15:02:04

+0

您是否從basesrc創建了自己的src元素?請提供一些關於你的元素和管道的更多信息。 – tilljoel 2010-04-30 16:47:51

回答

0

這也許可以做的伎倆,如果你沒有找到它尚未代碼:

GStreamer中尋求與尋求做( )和seek_simple()方法。爲了能夠找到你,還需要告訴Gstreamer應該怎麼做。在下面的例子中,我們將使用一個gst.FORMAT_TIME格式的常量,它可能會像您猜測的那樣花時間尋找。 :D我們還將使用query_duration()和query_position()方法獲取文件的長度以及文件當前播放的時間。 Gstreamer默認使用納秒,因此您必須對此進行調整。

下面是一個例子:Seeking with GStreamer

0

也許你忘了在總線監聽尋求事件。請嘗試在設置管線後將其置入:

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

如果此操作無效,請發佈更多代碼。