App zur Steuerung des mpv Mediaplayers auf einem Raspberry Pi über HTTP
undisclosed
2022-12-30 8771ec89633aff2040c8e9c9b25c98778f19bedb
commit | author | age
82594d 1 package de.uhilger.calypso.handler;
U 2
3 import de.uhilger.calypso.App;
4 import static de.uhilger.calypso.handler.OMXPlayer.CMD_STOP;
5 import java.io.IOException;
6 import java.net.HttpURLConnection;
7 import java.net.URL;
8 import java.util.logging.Level;
9 import java.util.logging.Logger;
10
11 /**
12  *
13  * @author ulli
14  */
15 public abstract class BasePlayer implements Player {
16   
17   private static final Logger logger = Logger.getLogger(BasePlayer.class.getName());
18   
19   
20   @Override
21   public void prozessBeendet(String meldeUrlStr) {
22     logger.log(Level.INFO, 
23               "Abspielen beendet, sende Meldung an {0}.", 
24               new Object[]{meldeUrlStr});
25     try {
26       HttpURLConnection conn = (HttpURLConnection) new URL(meldeUrlStr).openConnection();
27       conn.setRequestMethod("GET");
28       conn.connect();
29       int status = conn.getResponseCode();
30       logger.log(Level.INFO, 
31               "Abspielen beendet, Meldung an {0} mit Statuscode {1} gesendet.", 
32               new Object[]{meldeUrlStr, status});
33           /*
34             fuer den Fall, dass ein Stopp-Signal den Player nicht erreicht 
35             oder dort nicht funktioniert, gibt es keine Moeglichkeit festzustellen,
36             dass der Player noch spielt. Damit in einem solchen Fall der Zeiger 
37             auf den Abspielprozess nicht verloren geht, wird  der Zeiger nicht 
38             auf null gesetzt.
39           */
40       //App.setPlayerProcess(null);
41     } catch(IOException ex) {
42       logger.log(Level.INFO, ex.getMessage(), ex);
43     }
44   }
45
46   @Override
47   public String tilgen() {
48     logger.log(Level.INFO,"Player tilgen.");
49     String antwort; // = null;
50     try {
51       Process o = App.getPlayerProcess();
52       if(o == null) {
53         antwort = "Es ist kein Player zum Beenden vorhanden.";
54         //App.setPlayerProcess(null);
55       } else {
56         kommando(CMD_STOP); // setzt den Prozess der App auf null
57         antwort = "Player gestoppt.";
58       }
59     } 
60     catch(Exception ex) {
61       antwort = "Fehler: " + ex.getMessage();
62     }
63     return antwort;
64   }
65     
66 }