7
libvlcでは、より正確な結果を返すためにlibvlc_media_player_get_time()を取得するにはどうすればよいですか? 60fpsビデオでは、それが返す値はたかだか1秒間に数回しか更新されません。フレームの正確なタイミングを得る方法はありますか?libvlc_media_player_get_time()をより正確な結果に戻すにはどうすればよいですか?
libvlcでは、より正確な結果を返すためにlibvlc_media_player_get_time()を取得するにはどうすればよいですか? 60fpsビデオでは、それが返す値はたかだか1秒間に数回しか更新されません。フレームの正確なタイミングを得る方法はありますか?libvlc_media_player_get_time()をより正確な結果に戻すにはどうすればよいですか?
このissueによると、libvlcの結果は正確ではありません。
しかし、あなたはそれを補間することができます
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
}
素晴らしい、これは素晴らしい解決策です – user25
を私が構築してるプレイヤーが短いビデオ(長さ<1分)と遅い時間の更新を再生するために作られているので、私は今、これで問題を抱えていますポジションインジケータが低速で不安定に見えるようにします。これは本当の解決策がないことを憂慮しています。 – arjabbar