2017-02-10 6 views
0

java-vlcjプレーヤーでビデオプレーヤーアプリケーションを開発しようとしています。私はビデオの束のためのランダムな開始時間を与える必要があります。しかし、ビデオの中にはランダムな開始時間よりも短いものもあります。これらの動画をスキップして次の動画を再生する必要があります。ここでビデオの開始時間を知る方法は、java-vlcjプレーヤーのビデオ時間よりも短い

は私のコードです:

for(int i=0;i<videoCount;i++){ 
    int delay = playTime*1000; //milliseconds 
     ActionListener taskPerformer = new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 


       videoPath = randomvVideoPath(directory); 


       //*** times[0] is start time, times[1] is stop time***// 
       String[] times = startStop(); 


/*** I DONT KNOW IF THE START TIME IS SMALLER THAN THE VIDEO DURATION******/ 
mediaPlayerComponent.getMediaPlayer().playMedia(videoPath,":start-time="+times[0], ":stop-time="+times[1]); 

      } 
     }; 
      new Timer(delay, taskPerformer).start(); 
} 

は、どのように私はこれを確認することができますか? mediaPlayerComponent.getMediaPlayer()のgetLength()およびgetTime()は正しい時刻を返しません。事前に

おかげで,,

答えて

0

のgetLength()とgetTime()行う正確な時刻を返しますが、時々この情報は、メディアが再生されている後までは利用できません。それがVLCの仕組みです。

代わりにネイティブのMediaInfoコマンドラインユーティリティのJavaバインディングを見て、それを使ってビデオ長を取得することをお勧めします。

+0

私はこのライブラリを少し前に書いて、MediaInfoを使用してメディアファイルからこのような情報を取得しています:https://github.com/caprica/vlcj-info – caprica

+0

これは本当に良いです。 –

関連する問題