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