2012-12-07 21 views

回答

0

VLCJ並不是真正爲這種逐幀訪問而設置的 - 您可以在mediaplayer對象上使用setTime()getTime(),但這會從毫秒開始返回時間而不是幀。當然,如果你知道幀速率,那麼從一個幀轉換到另一個相對來說是相當微不足道的。

如果您需要比VLCJ提供的更低級別的操作,那麼您可能需要查看Xuggler。

0

其實你可以用一點數學來做到這一點。這不是最乾淨的方式,但它很容易理解。

VLCj允許您使用.getLength()來獲取媒體的長度。但是請注意,這會以毫秒爲單位返回媒體的長度。此外,您可以使用.getFPS()獲取媒體的幀數/秒。

所以,現在你可以得到幀的總數爲:

total_frames = .getFPS * .getLength() /1000; 

然後你可以使用.getPosition()找出您當前所在毫秒,然後你可以轉換,要一幀。這以百分比形式返回。

current_frame = .getPosition() * total_frames; 

現在,如果你想去一個特定的幀假設這個desired_frame。您可以使用佔用百分比的.setPosition()。因此,您需要確定代表您要跳轉到的幀的總數的百分比。

.setPosition((float)desired_frame/total_frames);