#java #eclipse #stream #rtsp #vlcj
#java #eclipse #поток #rtsp #vlcj
Вопрос:
У меня есть клиентское приложение rtsp stream. Он принимает адрес потока rtsp из файла cam1.bin и отлично работает в eclipse, но после экспорта в исполняемый файл JAR возникает проблема. Вероятно, с absolutepath, я так думаю. Я перепробовал много способов исправить это с помощью absolutepath, но безрезультатно.
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");
}
}
}
Есть идеи, советы?
Заранее благодарю вас.
Комментарии:
1. Если
cam.bin
он находится в jar, вы не можете его прочитатьFileInputStream
. Объекты в jar не являются файлами и не могут быть прочитаны с помощью файловых API. Посмотрите на Class.getResource, Class.getResourceAsStream2. Hi. Cam.bin — это отдельный файл. Другое мое приложение, предназначенное для чтения / записи адреса rtsp в этом файле, не имеет проблем с доступом к нему. Итак, проблема заключается в правильном чтении адреса rtsp после экспорта файла JAR. Раньше в eclipse ide это работало абсолютно нормально.
3. Находится ли «cam1.bin» в том же каталоге, из которого вы запускаете исполняемый файл jar? И когда вы говорите, что есть «проблема», что вы имеете в виду — исключение, если да, опубликуйте исключение.
4. Да, файл «cam1.bin» находится в том же каталоге (до экспорта jar в каталог проекта — тогда все работает нормально, и после экспорта в тот же каталог, что и файл jar). Перед экспортом в ide все в порядке, но после экспорта остается только черный фон (как установлено в setBackground). Исключений нет, потому что приложение видит файл и считывает его. В более ранней версии этой программы, когда в коде вводился адрес потока rtsp, проблема была той же. В ide все в порядке, но после экспорта приложение не хотело открывать адрес (черный фон). Вот почему я задаюсь вопросом, проблема с интерпретацией пути. (библиотека в каталоге).
5. Когда вы создаете свой MediaPlayerFactory, передайте «-vvv», затем изучите созданные собственные журналы.