libvlc では、libvlc_media_player_get_time() がより正確な結果を返すようにするにはどうすればよいですか? 60fps ビデオでは、返される値は 1 秒あたりせいぜい数回しか更新されません。フレームの正確なタイミングを取得する方法はありますか?
質問する
3055 次
1 に答える
10
This issue says that there is no way to get more accurate result from libvlc.
But you can interpolate it:
private long lastPlayTime = 0;
private long lastPlayTimeGlobal = 0;
/**
* Get current play time (interpolated)
* @see https://github.com/caprica/vlcj/issues/74
* @return
*/
public float getCurrentTime(){
long currentTime = directMediaPlayer.getTime();
if (lastPlayTime == currentTime && lastPlayTime != 0){
currentTime += System.currentTimeMillis() - lastPlayTimeGlobal;
} else {
lastPlayTime = currentTime;
lastPlayTimeGlobal = System.currentTimeMillis();
}
return currentTime * 0.001f; //to float
}
于 2013-12-07T07:15:26.743 に答える