From c18e1dfdb92661fcb8d2eaff87517ec5232f0f46 Mon Sep 17 00:00:00 2001 From: ulrich Date: Fri, 23 Apr 2021 17:53:30 +0000 Subject: [PATCH] Abspielprozess wird nicht mehr auf null gesetzt --- src/de/uhilger/avdirektor/handler/OMXPlayer.java | 32 +++++++++++++++++++++++++------- 1 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/de/uhilger/avdirektor/handler/OMXPlayer.java b/src/de/uhilger/avdirektor/handler/OMXPlayer.java index d360e13..926e9c8 100644 --- a/src/de/uhilger/avdirektor/handler/OMXPlayer.java +++ b/src/de/uhilger/avdirektor/handler/OMXPlayer.java @@ -49,6 +49,8 @@ private static final Logger logger = Logger.getLogger(OMXPlayer.class.getName()); + public static final String NAME = "omxplayer"; + public static final String BLANK = " "; public static final String CMD_DEC_SPEED = "1"; public static final String CMD_DEC_VOL = "-"; @@ -87,7 +89,7 @@ tilgen(); } List<String> kommando = new ArrayList(); - kommando.add("omxplayer"); + kommando.add(NAME); kommando.addAll(Arrays.asList(parameter.split(BLANK))); if(urlStr.startsWith("http")) { kommando.add(urlStr.replace(" ", "%20")); @@ -134,11 +136,11 @@ try { Process o = App.getPlayerProcess(); if(o == null) { - antwort = "Es ist kein Player zum Beenden vorhanden, aber der Servlet-Kontext wurde bereinigt."; - App.setPlayerProcess(null); + antwort = "Es ist kein Player zum Beenden vorhanden."; + //App.setPlayerProcess(null); } else { kommando(CMD_STOP); // setzt den Prozess der App auf null - antwort = "Player gestoppt, Kontext bereinigt."; + antwort = "Player gestoppt."; } } catch(Exception ex) { @@ -161,7 +163,7 @@ //Object o = t.getAttribute(App.PI_PLAYER); Process o = App.getPlayerProcess(); if(o == null) { - App.setPlayerProcess(null); + //App.setPlayerProcess(null); //servletContext.removeAttribute(PI_PLAYER); //t.setAttribute(App.PI_PLAYER, null); antwort = "Es wird nichts abgespielt dem ein Kommando gesendet werden kann."; @@ -173,7 +175,16 @@ out.flush(); if(k.equals(CMD_STOP)) { out.close(); - App.setPlayerProcess(null); + + /* + fuer den Fall, dass ein Stopp-Signal den Player nicht erreicht + oder dort nicht funktioniert, gibt es keine Moeglichkeit festzustellen, + dass der Player noch spielt. Damit in einem solchen Fall der Zeiger + auf den Abspielprozess nicht verloren geht, wird der Zeiger nicht + auf null gesetzt. + */ + + //App.setPlayerProcess(null); //player_process.destroy(); //player_process = null; //t.setAttribute(App.PI_PLAYER, null); @@ -200,7 +211,14 @@ logger.log(Level.INFO, "Abspielen beendet, Meldung an {0} mit Statuscode {1} gesendet.", new Object[]{meldeUrlStr, status}); - App.setPlayerProcess(null); + /* + fuer den Fall, dass ein Stopp-Signal den Player nicht erreicht + oder dort nicht funktioniert, gibt es keine Moeglichkeit festzustellen, + dass der Player noch spielt. Damit in einem solchen Fall der Zeiger + auf den Abspielprozess nicht verloren geht, wird der Zeiger nicht + auf null gesetzt. + */ + //App.setPlayerProcess(null); } catch(IOException ex) { logger.log(Level.INFO, ex.getMessage(), ex); } -- Gitblit v1.9.3