2012-11-22 20 views
0

我正在開發一個流媒體MP3播放器。我正在使用python gstreamer模塊來播放流。元素playbin2 query_position總是返回查詢失敗

我的球員是playbin2元素

當我要查詢的位置(query_position(gst.FORMAT_TIME,無)),它總是返回一個gst.QueryError:查詢失敗。 這首歌很穩定地演奏。 (狀態不爲NULL)

有沒有人有這方面的經驗? PS:我也嘗試用gst.Format(gst.FORMAT_TIME)替換gst.FORMAT_TIME,但是給了我同樣的錯誤。

回答

0

從什麼來源流式傳輸?如果你從playbin2查詢位置,我會說你做的都對。你能否爲gstreamer提交一個bug,包括一個暴露問題的最小python片段,並告訴你從哪個源流 - 理想的公衆。

0

我發現它是我自己的。問題在於線程。顯然,你需要線程你的gst對象,並等待查詢成功。

1

「你需要線程自己的gst對象」是什麼意思? 「等到查詢成功」是什麼意思?

狀態從NULL更改爲PAUSED或PLAYING狀態是異步的。一旦管道預註冊,您通常只能成功進行持續時間查詢(所以state> = PAUSED)。當您在管道的(playbin2's)GstBus上收到ASYNC_DONE消息時,您可以查詢。