package de.uhilger.avdirektor.handler;
|
|
import com.sun.net.httpserver.HttpExchange;
|
import com.sun.net.httpserver.HttpHandler;
|
import java.io.IOException;
|
import java.io.OutputStream;
|
import java.util.Map;
|
import java.util.logging.Level;
|
import java.util.logging.Logger;
|
|
/**
|
*
|
* @author ulrich
|
*/
|
public class PlayHandler extends OMXPlayer implements HttpHandler {
|
|
private static final Logger logger = Logger.getLogger(PlayHandler.class.getName());
|
|
/*
|
rpi4-az:9090/avd/play?titel=/Filme/S/sound_city.m4v&th=60&ti=60&o=local
|
|
OMXPlayer.abspielenMitParameternUndRueckmeldung(
|
String urlStr, String parameter, String meldeUrlStr, String token)
|
|
Parameter des Aufrufs play als query (th threshold, ti timeout)
|
|
?titel=/Filme/S/sound_city.m4v
|
&ti=60
|
&th=60
|
&o=local|hdmi|both
|
&r=http://uhilger.de/mc/api/usw
|
|
r muss ganz wegbleiben, wenn keine Rueckmeldung gewuescht ist
|
|
*/
|
@Override
|
public void handle(HttpExchange t) throws IOException {
|
logger.log(Level.FINE, "RequestURI: {0}", t.getRequestURI().toString());
|
|
Map map = getQueryMap(t);
|
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 antwort = abspielenMitParameternUndRueckmeldung(
|
getParam(map, "titel"), params.toString(), getParam(map, "r"), "1");
|
|
String response = getResponseString(map, "play", antwort);
|
t.sendResponseHeaders(200, response.length());
|
OutputStream os = t.getResponseBody();
|
os.write(response.getBytes());
|
os.close();
|
}
|
|
|
}
|