From 82594dab993741669b50fe1ec784f528fd836bc2 Mon Sep 17 00:00:00 2001 From: undisclosed Date: Fri, 30 Dec 2022 08:47:11 +0000 Subject: [PATCH] Verwendung des VLCPlayer verbessert --- src/de/uhilger/calypso/MeldeThread.java | 2 + src/de/uhilger/calypso/handler/OMXPlayer.java | 11 +++-- src/de/uhilger/calypso/handler/VLCPlayer.java | 13 +----- src/de/uhilger/calypso/handler/BasePlayer.java | 66 +++++++++++++++++++++++++++++++++ src/de/uhilger/calypso/handler/PlayHandler.java | 4 + 5 files changed, 79 insertions(+), 17 deletions(-) diff --git a/src/de/uhilger/calypso/MeldeThread.java b/src/de/uhilger/calypso/MeldeThread.java index 1bdfe01..7d03fb5 100644 --- a/src/de/uhilger/calypso/MeldeThread.java +++ b/src/de/uhilger/calypso/MeldeThread.java @@ -70,6 +70,8 @@ } private void prozessBeendetMelden() { + logger.log(Level.FINER, + "Alle Lauscher werden ueber beendeten Abspielprozess verstaendigt.."); Iterator<ProzessLauscher> i = lauscher.iterator(); while(i.hasNext()) { ProzessLauscher l = i.next(); diff --git a/src/de/uhilger/calypso/handler/BasePlayer.java b/src/de/uhilger/calypso/handler/BasePlayer.java new file mode 100644 index 0000000..28a052d --- /dev/null +++ b/src/de/uhilger/calypso/handler/BasePlayer.java @@ -0,0 +1,66 @@ +package de.uhilger.calypso.handler; + +import de.uhilger.calypso.App; +import static de.uhilger.calypso.handler.OMXPlayer.CMD_STOP; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * + * @author ulli + */ +public abstract class BasePlayer implements Player { + + private static final Logger logger = Logger.getLogger(BasePlayer.class.getName()); + + + @Override + public void prozessBeendet(String meldeUrlStr) { + logger.log(Level.INFO, + "Abspielen beendet, sende Meldung an {0}.", + new Object[]{meldeUrlStr}); + try { + HttpURLConnection conn = (HttpURLConnection) new URL(meldeUrlStr).openConnection(); + conn.setRequestMethod("GET"); + conn.connect(); + int status = conn.getResponseCode(); + logger.log(Level.INFO, + "Abspielen beendet, Meldung an {0} mit Statuscode {1} gesendet.", + new Object[]{meldeUrlStr, status}); + /* + 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); + } + } + + @Override + public String tilgen() { + logger.log(Level.INFO,"Player tilgen."); + String antwort; // = null; + try { + Process o = App.getPlayerProcess(); + if(o == 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."; + } + } + catch(Exception ex) { + antwort = "Fehler: " + ex.getMessage(); + } + return antwort; + } + +} diff --git a/src/de/uhilger/calypso/handler/OMXPlayer.java b/src/de/uhilger/calypso/handler/OMXPlayer.java index 4248cb8..10b869f 100644 --- a/src/de/uhilger/calypso/handler/OMXPlayer.java +++ b/src/de/uhilger/calypso/handler/OMXPlayer.java @@ -27,8 +27,6 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; -import java.net.HttpURLConnection; -import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -45,7 +43,7 @@ * * @author ulrich */ -public class OMXPlayer implements Player , ProzessLauscher { +public class OMXPlayer extends BasePlayer implements Player , ProzessLauscher { private static final Logger logger = Logger.getLogger(OMXPlayer.class.getName()); @@ -131,6 +129,7 @@ * * @return die Antwort des Servers */ + /* @Override public String tilgen() { String antwort; // = null; @@ -149,7 +148,7 @@ } return antwort; } - + */ /** * Dem laufenden Abspielprozess ein Kommando uebermitteln @@ -202,6 +201,7 @@ /* ------ Implementierung ProzessLauscher ----------------- */ + /* @Override public void prozessBeendet(String meldeUrlStr) { try { @@ -220,9 +220,10 @@ auf null gesetzt. */ //App.setPlayerProcess(null); + /* } catch(IOException ex) { logger.log(Level.INFO, ex.getMessage(), ex); } } - + */ } diff --git a/src/de/uhilger/calypso/handler/PlayHandler.java b/src/de/uhilger/calypso/handler/PlayHandler.java index f11a935..0c2b527 100644 --- a/src/de/uhilger/calypso/handler/PlayHandler.java +++ b/src/de/uhilger/calypso/handler/PlayHandler.java @@ -77,7 +77,9 @@ //FileUtils.deleteDirectory(new File(System.getProperty("omx.wd"), "omx-logs")); FileSystem fs = FileSystems.getDefault(); Path path = fs.getPath(System.getProperty("omx.wd"), "omx-logs"); - deleteDirectory(path); + if(path.toFile().exists()) { + deleteDirectory(path); + } //Files.delete(path); } catch (IOException ex) { logger.log(Level.SEVERE, null, ex); diff --git a/src/de/uhilger/calypso/handler/VLCPlayer.java b/src/de/uhilger/calypso/handler/VLCPlayer.java index 29469c0..849babb 100644 --- a/src/de/uhilger/calypso/handler/VLCPlayer.java +++ b/src/de/uhilger/calypso/handler/VLCPlayer.java @@ -7,7 +7,6 @@ import de.uhilger.calypso.App; import de.uhilger.calypso.MeldeThread; -import static de.uhilger.calypso.handler.OMXPlayer.BLANK; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; @@ -16,7 +15,7 @@ * * @author ulrich */ -public class VLCPlayer implements Player { +public class VLCPlayer extends BasePlayer implements Player { private static final Logger logger = Logger.getLogger(VLCPlayer.class.getName()); @@ -58,6 +57,7 @@ kommando.append(urlStr); } + kommando.append(" vlc://quit"); logger.log(Level.FINE, "kommando: {0}", kommando.toString()); Process player_process = Runtime.getRuntime().exec(kommando.toString()); if(meldeUrlStr != null) { @@ -90,14 +90,5 @@ return antwort; } - @Override - public void prozessBeendet(String meldeUrlStr) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - @Override - public String tilgen() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - } -- Gitblit v1.9.3