Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java VLCJ-在eclipse中播放rtsp流视频,但不能在制作可执行JAR之后播放_Java_Eclipse_Stream_Rtsp_Vlcj - Fatal编程技术网

Java VLCJ-在eclipse中播放rtsp流视频,但不能在制作可执行JAR之后播放

Java VLCJ-在eclipse中播放rtsp流视频,但不能在制作可执行JAR之后播放,java,eclipse,stream,rtsp,vlcj,Java,Eclipse,Stream,Rtsp,Vlcj,我有一个rtsp流客户端应用程序。它从cam1.bin文件中获取rtsp流地址,在eclipse中运行良好,但在导出到可执行JAR后出现了一个问题。可能是绝对路径,我知道。我尝试了很多方法来解决这个问题,但是没有结果 public static void main(String [] args) { JFrame f = new JFrame(); f.setLocation(100,100); f.setSize(1200,720); f.setDefaultCloseOpe

我有一个rtsp流客户端应用程序。它从cam1.bin文件中获取rtsp流地址,在eclipse中运行良好,但在导出到可执行JAR后出现了一个问题。可能是绝对路径,我知道。我尝试了很多方法来解决这个问题,但是没有结果

public static void main(String [] args) {
    
JFrame f = new JFrame();
f.setLocation(100,100);
f.setSize(1200,720);    
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
f.setVisible(true); 
//f.setAlwaysOnTop(true);
f.setTitle("rtsp app");

Canvas c = new Canvas();
c.setBackground(Color.black);
JPanel p = new JPanel();
p.setLayout(new BorderLayout());

p.add(c);
f.add(p);


NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(),"lib");
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);

MediaPlayerFactory mpf = new MediaPlayerFactory();
EmbeddedMediaPlayer emp = mpf.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(f));
emp.setVideoSurface(mpf.newVideoSurface(c));
//emp.toggleFullScreen();
emp.setEnableMouseInputHandling(false);
emp.setEnableKeyInputHandling(false);



try{
    DataInputStream strumien = new DataInputStream(new FileInputStream("cam1.bin"));
    
    String file= (strumien.readUTF()); 
            
    emp.prepareMedia(file);
    
    emp.play();
    
    strumien.close();   
} catch(FileNotFoundException e){
    System.out.println("File not found");
} catch(IOException e){
    System.out.println("OI error");
}
}
}

有什么想法、建议吗


提前谢谢。

如果
cam.bin
在jar中,您无法使用
FileInputStream
读取它。jar中的对象不是文件,不能用文件API读取。看看Class.getResource,Class.getResourceAsStreamHi。Cam.bin是一个单独的文件。其他专用于读取/写入此文件中rtsp地址的my app访问它没有问题。所以,问题是在导出JAR文件后,以正确的方式读取rtsp地址。以前,在EclipseIDE中,它工作得非常好。“cam1.bin”是否与运行可执行jar的目录相同?当你说有一个“问题”时,你的意思是什么?一个异常,如果是的话,发布异常。是的,“cam1.bin”文件在同一个目录中(在jar导出之前在项目目录中-然后工作正常,导出之后在与jar文件相同的目录中)。在ide中导出之前是可以的,但导出之后只有黑色背景(如setBackground中设置的)。没有例外,因为应用程序可以看到并读取文件。在该程序的早期版本中,当在代码中键入rtsp流的地址时,问题是相同的。在ide中可以,但导出后应用程序不想打开地址(黑色背景)。这就是为什么我想知道路径解释的问题。创建MediaPlayerFactory时,传递“-vvv”,然后研究生成的本机日志。