From 669ad47b6e59b02bfc8acce0cdf4c74515226da0 Mon Sep 17 00:00:00 2001 From: undisclosed Date: Fri, 06 Jan 2023 17:37:53 +0000 Subject: [PATCH] Problem beim Abspielen vom mp3 mit Album Bildern behoben --- src/de/uhilger/calypso/handler/OMXPlayer.java | 70 +++++++++------------------------- 1 files changed, 19 insertions(+), 51 deletions(-) diff --git a/src/de/uhilger/calypso/handler/OMXPlayer.java b/src/de/uhilger/calypso/handler/OMXPlayer.java index 10b869f..f012ad9 100644 --- a/src/de/uhilger/calypso/handler/OMXPlayer.java +++ b/src/de/uhilger/calypso/handler/OMXPlayer.java @@ -18,6 +18,7 @@ package de.uhilger.calypso.handler; +import com.sun.net.httpserver.HttpExchange; import de.uhilger.calypso.App; import de.uhilger.calypso.MeldeThread; import de.uhilger.calypso.ProzessLauscher; @@ -30,6 +31,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -64,8 +66,6 @@ public static final String CMD_PREV_SUB = "n"; public static final String CMD_STOP = "q"; public static final String CMD_TOGGLE_SUB = "s"; - public static final String F_PING = "ping"; - public static final String F_PLAY = "play"; public static final String F_PLAY_ON = "playon"; public static final String F_SEEK = "seek"; public static final String OPT_HDMI_AUDIO = "-o%20hdmi"; @@ -115,6 +115,23 @@ } return antwort; } + + @Override + public StringBuilder buildParams(HttpExchange t, Map map) { + StringBuilder params = new StringBuilder(); + params.append("-o "); + params.append(getParam(map, "o")); + params.append(" --threshold "); + params.append(getParam(map, "th")); + params.append(" --timeout "); + params.append(getParam(map, "ti")); + String log = getParam(map, "log"); + if (log != null && log.equalsIgnoreCase("true")) { + params.append(" --genlog"); + } + return params; + } + /** * Einen eventuell laufenden Abspielprozess beenden und den @@ -149,55 +166,6 @@ return antwort; } */ - - /** - * Dem laufenden Abspielprozess ein Kommando uebermitteln - * @param k das Kommando laut - * <a href="https://github.com/huceke/omxplayer/blob/master/README.md" target="_blank">Liste der Kommandos</a> - * @return die Antwort des Servers - */ - @Override - public String kommando(String k) { - String antwort; // = null; - try { - //Object o = t.getAttribute(App.PI_PLAYER); - Process o = App.getPlayerProcess(); - if(o == 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."; - } else { - Process player_process = o; - OutputStream os = player_process.getOutputStream(); - Writer out = new BufferedWriter(new OutputStreamWriter(os)); - out.write(k); - out.flush(); - if(k.equals(CMD_STOP)) { - out.close(); - - /* - 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); - //servletContext.removeAttribute(PI_PLAYER); - } - antwort = "Kommando '" + k + "' ausgefuehrt."; - } - } - catch(IOException ex) { - antwort = "Fehler: " + ex.getMessage(); - } - return antwort; - } /* ------ Implementierung ProzessLauscher ----------------- */ -- Gitblit v1.9.3