2011-07-14 48 views
2

下載並使用Xuggler後,我的初始印象非常好;它支持大量的編解碼器,它相對來說很容易上手,而入門教程視頻非常清晰地解釋了所有必要的概念。Xuggler有更高層次的API嗎?

但是,在玩了幾天之後,我真的把我的頭髮撕掉,讓所有的音頻和視頻很好地同步。在正常播放的時候沒問題,但是當添加暫停時,尋找和計算偶爾的6秒停頓時,我的外部硬盤驅動器變成了一個絕對的噩夢。

我已經部分實現了一些東西,但它並不是完美的 - 你可以尋找幾次,但過了一段時間後它仍然會漂移。

我不禁認爲這是Xuggler的一個常見用例,而且有人必須做這種事情已經比我更好了。但是,唉,我找不到任何超出網站上的例子。是否有更高級別的API管理所有音頻/視頻同步問題,並提供一些更高級別的控制(播放,暫停,停止等)?如果沒有任何事情,我自己也沒有問題,但我從來沒有重新發明輪子(尤其是如果我的新輪子比舊輪子更糟糕!)

+0

只是給你一個小小的警告。我的團隊正在使用Xuggler來解析傳入的視頻流,並且在任何時候該流有任何形式的損壞時,Xuggler都會崩潰並導致JVM出現段錯誤。只是扔在那裏:) – Jon7

+0

@ Jon7,謝謝你的警告字。看起來,所有媒體API都做我想做的事情很容易做到這一點 - 雖然我也看着vlcj有一種傾向,每隔一段時間就會崩潰JVM,並且gstreamer-java綁定在同一條船。當然,除非你可以建議一個沒有? :-) – berry120

+0

我想我實際上不能提出一個更好的選擇。,好的調用:)我們只關心相關的元數據,所以我們編寫了我們自己的解析器來解決這個問題並丟棄視頻數據。 – Jon7

回答

2

這實際上是一個兩部分的答案 - 首先是肯定的,有更高級別的「玩家」框架here。它處於早期階段,但比我想要快速拼湊出來的任何東西都要好,我敢肯定,運行它的人會願意在代碼中進行任何改進。其次,我並沒有真正與上述相關,因爲我看到的是使用libVLC的VLCJ,而libVLC反過來將所有同步內容都構建得很好。爲了讓多個玩家可靠地嵌入到應用程序中,您需要使用流程外玩家(請參閱here瞭解我如何執行此操作),但是一旦該框架就位,它就可以可靠,快速且總體運行得非常好。