App zur Steuerung des mpv Mediaplayers auf einem Raspberry Pi über HTTP
undisclosed
2022-12-30 82594dab993741669b50fe1ec784f528fd836bc2
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 }