App zur Steuerung des mpv Mediaplayers auf einem Raspberry Pi über HTTP
ulrich
2021-03-24 0af362883d659d9481a7f2bf6cf0c7459997f5e2
src/de/uhilger/avdirektor/handler/OMXPlayer.java
@@ -27,6 +27,39 @@
  
  private static final Logger logger = Logger.getLogger(OMXPlayer.class.getName());
  
  public static final String CMD_STOP = "q";
  public static final String CMD_DEC_SPEED = "1";
  public static final String CMD_INC_SPEED = "2";
  public static final String CMD_PREV_AUDIO = "j";
  public static final String CMD_NEXT_AUDIO = "k";
  public static final String CMD_PREV_CHAPTER = "i";
  public static final String CMD_NEXT_CHAPTER = "o";
  public static final String CMD_PREV_SUB = "n";
  public static final String CMD_NEXT_SUB = "m";
  public static final String CMD_TOGGLE_SUB = "s";
  public static final String CMD_PAUSE_RESUME = "p";
  public static final String CMD_DEC_VOL = "-";
  public static final String CMD_INC_VOL = "+";
  public static final String PFEIL_LINKS = "5b44";
  public static final String PFEIL_RECHTS = "5b43";
  public static final String PFEIL_HERAUF = "5b41";
  public static final String PFEIL_HERUNTER = "5b42";
  public static final String SP_RUECK_30 = "rueck30";
  public static final String SP_VOR_30 = "rueck30";
  public static final String SP_VOR_600 = "vor600";
  public static final String SP_RUECK_600 = "rueck600";
  public static final String OPT_LOCAL_AUDIO = "-o%20local";
  public static final String OPT_HDMI_AUDIO = "-o%20hdmi";
  public static final String F_PLAY = "play";
  public static final String F_SEEK = "seek";
  public static final String F_PING = "ping";
  public static final String BLANK = " ";
  /**
   * Einen Prozess zum Abspielen mit dem omxplayer starten
   * @param urlStr  URL der Quelle, die abgespielt werden soll
@@ -74,7 +107,7 @@
      StringBuilder kommando = new StringBuilder("omxplayer ");
      if(parameter != null) {
        kommando.append(parameter);
        kommando.append(App.BLANK);
        kommando.append(BLANK);
      }
      if(urlStr.startsWith("http")) {
        kommando.append(urlStr.replace(" ", "%20"));
@@ -143,7 +176,7 @@
        // t.removeAttribute(App.PI_PLAYER);
        antwort = "Es ist kein Player zum Beenden vorhanden, aber der Servlet-Kontext wurde bereinigt.";
      } else {
        kommando(App.CMD_STOP);
        kommando(CMD_STOP);
        //t.removeAttribute(PI_PLAYER);
        antwort = "Player gestoppt, Kontext bereinigt.";
      }
@@ -177,7 +210,7 @@
        Writer out = new BufferedWriter(new OutputStreamWriter(os));
        out.write(k);
        out.flush();
        if(k.equals(App.CMD_STOP)) {
        if(k.equals(CMD_STOP)) {
          out.close();
          App.setPlayerProcess(null);
          //player_process.destroy();