App zur Steuerung des mpv Mediaplayers auf einem Raspberry Pi über HTTP
ulrich
2021-04-23 c18e1dfdb92661fcb8d2eaff87517ec5232f0f46
Abspielprozess wird nicht mehr auf null gesetzt
1 files modified
28 ■■■■ changed files
src/de/uhilger/avdirektor/handler/OMXPlayer.java 28 ●●●● patch | view | raw | blame | history
src/de/uhilger/avdirektor/handler/OMXPlayer.java
@@ -136,11 +136,11 @@
    try {
      Process o = App.getPlayerProcess();
      if(o == null) {
        antwort = "Es ist kein Player zum Beenden vorhanden, aber der Servlet-Kontext wurde bereinigt.";
        App.setPlayerProcess(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, Kontext bereinigt.";
        antwort = "Player gestoppt.";
      }
    } 
    catch(Exception ex) {
@@ -163,7 +163,7 @@
      //Object o = t.getAttribute(App.PI_PLAYER);
      Process o = App.getPlayerProcess();
      if(o == null) {
        App.setPlayerProcess(null);
        //App.setPlayerProcess(null);
        //servletContext.removeAttribute(PI_PLAYER);
        //t.setAttribute(App.PI_PLAYER, null);
        antwort = "Es wird nichts abgespielt dem ein Kommando gesendet werden kann.";
@@ -175,7 +175,16 @@
        out.flush();
        if(k.equals(CMD_STOP)) {
          out.close();
          App.setPlayerProcess(null);
          /*
            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);
          //player_process.destroy();
          //player_process = null;
          //t.setAttribute(App.PI_PLAYER, null);
@@ -202,7 +211,14 @@
      logger.log(Level.INFO, 
              "Abspielen beendet, Meldung an {0} mit Statuscode {1} gesendet.", 
              new Object[]{meldeUrlStr, status});
      App.setPlayerProcess(null);
          /*
            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);
    }