App zur Steuerung des mpv Mediaplayers auf einem Raspberry Pi über HTTP
ulrich
2021-03-29 fa4bcf5f03a8b2fc45faa1aef8f0c8ff4dd616b6
src/de/uhilger/avdirektor/handler/SeekHandler.java
@@ -1,10 +1,25 @@
/*
    AV-Direktor - Control OMXPlayer on Raspberry Pi via HTTP
    Copyright (C) 2021  Ulrich Hilger
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.
    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/
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 de.uhilger.avdirektor.App;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -21,35 +36,28 @@
  }
  @Override
  public void handle(HttpExchange t) throws IOException {
    logger.log(Level.FINE, "RequestURI: {0}", t.getRequestURI().toString());
    StringBuilder params = super.buildParams(t);
    params.append(" --pos ");
    params.append(getParam(map, "p"));
    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();
  }
  @Override
  protected String process(HttpExchange t, String params) {
    String antwort = abspielenMitParameternUndRueckmeldung(
    String antwort = App.getPlayer().abspielen(
            getParam(map, "titel"), params, getParam(map, "r"), "1");    
    logger.log(Level.FINE, antwort);
    return antwort;
  }
  /*
    start "C:Program FilesVLCvlc.exe" rel="nofollow" "D:MoviesThe Italian Job.avi" --start-time 12 --stop-time 20
    You simply have to use the command line as given above, with the file paths and the time changed as needed.
    The numbers 12 and 20 in the command line indicate 12 seconds and 20 seconds respectively.
    --global-key-play-pause=<string>
                                 Play/Pause
          Select the hotkey to use to swap paused state.
  */
  protected StringBuilder buildParams(HttpExchange t) {
    StringBuilder params = super.buildParams(t);
    params.append(" --pos ");
    params.append(getParam(map, "p"));
    params.append(getParam(map, "pos"));
    return params;
  }