2017-02-10 48 views
0

Я пытаюсь разработать приложение для видеопроигрывателя с помощью java-vlcj player. Мне нужно дать случайное время начала для кучи видео. Однако некоторые видеоролики короче моего случайного времени начала. Мне нужно пропустить эти видео и сыграть дальше.Как узнать время начала видео меньше, чем продолжительность видео в java-vlcj player

Вот мой код:

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(); 
} 

Как я могу проверить это? getLength() и getTime() из mediaPlayerComponent.getMediaPlayer() не дают правильного времени.

Заранее спасибо ,,

ответ

0

GetLength() и GetTime() сделать вернуть правильное время, но иногда эта информация не доступна до после СМИ не играют. Вот как работает VLC.

Я бы предложил вместо этого взглянуть на привязки Java для родной утилиты командной строки MediaInfo и использовать ее для получения вашей длины видео.

+0

Я написал эту библиотеку некоторое время назад, чтобы использовать MediaInfo, чтобы получить именно такую ​​информацию из медиафайла: https://github.com/caprica/vlcj-info – caprica

+0

это действительно хорошо, так вам очень нравится :) –