Грешка в повреден модул при използване на vlcj

Опитвам се да работя с vlcj през последните два часа, но не мога да разбера как да го накарам да работи. Използвам този урок. Дори след като написах кода си, както в урока, все още получавам тази грешка

SLF4J: Неуспешно зареждане на клас "org.slf4j.impl.StaticLoggerBinder".

SLF4J: По подразбиране реализация на регистратор без операции (NOP)

SLF4J: Вижте http://www.slf4j.org/codes.html#StaticLoggerBinder за повече подробности.

[000000001a8ed480] грешка в основния поток: повреден модул: C:\VideoLAN\VLC\plugins\stream_filter\libdash_plugin.dll

[000000001a8d7a30] core demux мета грешка: повреден модул: C:\VideoLAN\VLC\plugins\meta_engine\libtaglib_plugin.dll

[000000001a8acfb0] core vout дисплей грешка: Неуспешно задаване отгоре

Ето кода, който използвам, той е малко по-различен от урока, защото моята програма има различни изисквания.

public class AVPlayer extends JPanel{

private EmbeddedMediaPlayerComponent mediaPlayer;       
private String vlcPath, mediapath ; //iniitalized in chooseFile()

//constructor
public AVPlayer() {
    chooseFiles();
    NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), vlcPath);
    mediaPlayer = new EmbeddedMediaPlayerComponent();
    add(mediaPlayer);
    setSize(400,400);


}

// method to explicitly choose the VLC path and the video file I want to play    
private void chooseFiles(){
    JFileChooser ourFileSelector = new JFileChooser();
    File ourfile;

    //choose vlc path
    ourFileSelector.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    ourFileSelector.showSaveDialog(null);
    ourfile = ourFileSelector.getSelectedFile();
    vlcPath = ourfile.getAbsolutePath();

    //choose media path
    ourFileSelector.setFileSelectionMode(JFileChooser.FILES_ONLY);
    ourFileSelector.showSaveDialog(null);
    ourfile = ourFileSelector.getSelectedFile();
    mediapath = ourfile.getAbsolutePath();
}

//called in main to play the video
public void playVideo(){
    mediaPlayer.getMediaPlayer().playMedia(mediapath); 
  }
}

И тук е основното

 public static void main(String[] args) { 
    JFrame frame = new JFrame();
    AVPlayer player = new AVPlayer();
    frame.add(player);               
    frame.setVisible(true);
    frame.validate();
    player.playVideo();
}

person Aeleon    schedule 03.10.2015    source източник


Отговори (1)


Тук има три различни неща.

Първото е просто предупреждение за конфигурацията на API за регистриране на SLF4J, който vlcj използва сега. Това е лесно да се "поправи", като следвате връзката, която сте публикували.

Второто при повредени модули е естествена грешка, докладвана от самия VLC. Най-много, което може да се каже тук е, че VLC не успя да зареди и инициализира тези плъгини (libdash и libtaglib), но точно защо не успя, е много трудно да се каже. Ако използвате 64-битов VLC в Windows, опитайте вместо това 32-битов VLC и 32-битов JVM.

Третото е „Неуспешно настройване отгоре...“ - това също е естествено предупреждение, докладвано от VLC и според моя опит може да бъде игнорирано без вреден ефект.

Тук всъщност няма нищо във vlcj, което да е замесено в някой от тези проблеми.

person caprica    schedule 04.10.2015
comment
Опитахте ли 32-битов, това накара ли проблема с повредения модул да изчезне? Виждал съм подобни проблеми и преди с 64-битов VLC на Windows. - person caprica; 05.10.2015