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; } }