2010-02-13 73 views
1

我正在創建基於XULRunner的GStreamer應用程序。爲此,創建了一個XPCOM組件,使XUL應用程序中的一些GStreamer功能可用。但是,GStreamer通常使用一個消息循環(GMainLoop),它可以讓人接收總線消息。因爲XULRunner已經有了自己的消息循環,所以我不能創建GMainLoop。所以我需要另一種獲取這些消息的方式。一種方法是使用gst_bus_poll調用。我需要經常調用它以防止消息隊列被淹沒。所以我在想這個計時器是正確的解決方案。如何在XPCOM組件中實現一個定時器?

長話短說:如何在XPCOM組件中創建計時器?

+1

XPCOM插件?這項技術已經死了。你的意思是NPAPI插件還是XPCOM組件? – Nickolay

+0

我的意思是XPCOM組件。更新了我的帖子。 – StackedCrooked

回答

1

看看nsITimer

你可能會對this bug about implementing a GStreamer backend for <video>的代碼感興趣。

+0

我一直在嘗試一點,最終實現了計時器在Javascript側(setTimeout)。 關於用於html視頻的GStreamer後端。這似乎很有趣,但我似乎無法在Mozilla源代碼目錄(a/content/html/content/public/nsHTMLMediaElement.h)中找到實際的源文件。我可能看錯了地方。 順便說一句,目前我的代碼靈感來自Songbird的來源。它在Windows和Mac上運行得非常好。但偶爾該應用程序變得無法響應(通常同時在另一個應用程序或YouTube上播放視頻)。 – StackedCrooked

+0

@StackedCrooked:http://mxr.mozilla.org/mozilla-central/source/content/html/content/public/nsHTMLMediaElement.h。 「a /」的事情就是DVCS經常出現的方式。 – Nickolay

相關問題