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