2013-11-15 78 views
0

我正試圖編寫一個媒體播放器應用程序,該應用程序將使用GStreamer 0.10.36在ARM處理器上運行。我的目標是儘可能縮短兩個視頻之間的過渡時間,並希望完全消除它。目前爲實現這一點,我使用兩條管道,每條管道都有自己的源和接收器。我使用的處理器允許使用相同類型的多個接收器接口(我使用的是Freescale i.MX6Q mfw_isink元件)。當我到達第一個視頻的末尾時,我會更改管道的狀態,以便第二個視頻開始播放。在看到第二個視頻之前可能會有半秒的延遲,在此期間桌面可見。我相信發生的事情是第二個視頻在播放之前會打開一個新窗口。如果是這樣,那麼我需要使用XOverlay窗口ID來告訴第二個視頻打開哪個窗口,但我不確定實際執行此操作的實際必要性。我見過的所有xoverlay示例都使用了很多GUI代碼,而且我無法確定什麼是什麼。使用XOverlay進行GStreamer窗口管理

有人能解釋一下需要什麼來獲得/設置窗口ID,這樣我總是可以在同一個窗口中播放?我正在將它作爲C++應用程序編寫,並且可以使用GTK + 2.0,但我希望遠離任何QT方法。

謝謝你在前進, 喬什 - 庫爾蘭

回答

2

gst-plugins-base/tests/examples/overlay/對如何使用各種工具包疊加的例子。關於延遲,你最好使用playbin,因爲這有一個功能可以進行無縫播放。當接近第一個視頻的結尾時,它將準備第二個視頻。最後考慮使用gstreamer-1.X作爲0.10處於維護模式。

+0

謝謝,我會看看這個例子。我在我的應用程序中使用了playbin(2),但我並不知道它能夠無縫播放。我已經嘗試了「即將完成」的信號,但我的印象是它已經被棄用,並且在0.10上有很多錯誤,並且更多地針對音頻應用而不是視頻。至於使用版本1.x和0.10,我希望這是一個選項,幾乎所有我一直試圖做的事情在1.x上更容易。我正在開發ARM板,並且據我所知,1.x端口沒有正在進行中。 –