App zur Steuerung des mpv Mediaplayers auf einem Raspberry Pi über HTTP
undisclosed
2022-12-30 82594dab993741669b50fe1ec784f528fd836bc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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;
  }
    
}