2017-03-28 704 views
0

저는이 프로젝트를 Eclipse 프로젝트에서 만들었습니다. 버튼이 눌려 졌을 때 비디오를 실행한다고 가정합니다. IDE에서는 모든 것이 정상적으로 작동하지만 오류는 발생하지만 문제가 발생하지는 않습니다. (생각하고 떠날 것입니다.) 이제 Jar 파일을 내 보내어 실행 해 봅니다. , 같은 컴퓨터에서 비디오가 재생되지 않습니다. 내가 무엇을 할 수 있을지? 내가 일할 수있는 프로젝트를 필요로하는 VLCJ에서 비디오가 재생되지 않습니다

[0000000017a2b420] core vout display error: Failed to set on top 

은, 제발 도와주세요 : 여기
JFrame vid = new JFrame(); 
     vid.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     vid.setBounds(100, 100, 450, 300); 
     vid.setVisible(true); 

     Canvas c = new Canvas(); 
     c.setBackground(Color.BLACK); 
     JPanel p = new JPanel(); 
     p.setLayout(new BorderLayout()); 
     p.add(c); 
     vid.add(p); 

     NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(),"C:/Program Files/VideoLAN/VLC"); 
     Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); 
     MediaPlayerFactory mpf = new MediaPlayerFactory(); 
     EmbeddedMediaPlayer emp = mpf.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(vid)); 
     emp.setVideoSurface(mpf.newVideoSurface(c)); 
     emp.toggleFullScreen(); 
     emp.setEnableMouseInputHandling(false); 
     emp.setEnableKeyInputHandling(false); 
     String file="/resources/sky.mp4"; 
     emp.prepareMedia(file); 
     emp.play(); 

나타나는 오류 코드입니다.

+0

'/ resources/sky.mp4'는 Jar 파일 또는 디스크에 포함되어 있습니까? Jar 파일에 있으면 재생할 수 없습니다. 디스크의 파일이 아닌 Zip 파일의 항목이기 때문에 압축을 풀거나'Class # getResource'를 사용하여 URL을 가져와야합니다 'VLCj '가 재생할 수있는 참조 – MadProgrammer

+0

Jar를 추출하고 거기에 파일을 넣어서 프로그램이 재생할 폴더를 만들 수 있습니까? –

+0

이론 상으로는 그렇습니다. 파일을 쓰고 사용자에게 홈 디렉토리와 같은 액세스를 제공 할 수있는 위치를 선택할 수있는 권한이 없다는 사실을 허용해야합니다. – MadProgrammer

답변

0

좋아요, 조금만 돌아 가야합니다. String 대신 URL을 사용할 수없고 String이 Class # getResource를 수행 할 수 없기 때문에 이론적으로는 pc에서 pc로 변경해서는 안되는 공용 폴더에서 실행하도록 결정했습니다.

그래서 내 코드는 끝나게 :

String file = new File("C:/Users/Public/Videos/sky.mp4").getAbsolutePath(); 
     emp.prepareMedia(file); 
     emp.play(); 

을 이상적이지 우리가 프로그램을 설치할 것, 그것은이 일을,지도없이 통과하는 동안.

+0

macs MadProgrammer

+0

@MadProgrammer 스쿨에는 Windows 만 있으므로 문제가 없습니다. –