From 94c45ccb52cff4fe8e4fc8b31cef9eb16da80c85 Mon Sep 17 00:00:00 2001 From: ulrich Date: Wed, 31 Mar 2021 21:32:43 +0000 Subject: [PATCH] OMXPlayer Log verarbeiten --- src/de/uhilger/avdirektor/handler/OMXPlayer.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 54 insertions(+), 4 deletions(-) diff --git a/src/de/uhilger/avdirektor/handler/OMXPlayer.java b/src/de/uhilger/avdirektor/handler/OMXPlayer.java index de16ca0..991e12b 100644 --- a/src/de/uhilger/avdirektor/handler/OMXPlayer.java +++ b/src/de/uhilger/avdirektor/handler/OMXPlayer.java @@ -1,3 +1,21 @@ +/* + AV-Direktor - Control OMXPlayer on Raspberry Pi via HTTP + Copyright (C) 2021 Ulrich Hilger + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. +*/ + package de.uhilger.avdirektor.handler; import de.uhilger.avdirektor.App; @@ -23,10 +41,39 @@ * * @author ulrich */ -public abstract class OMXPlayer implements ProzessLauscher { +public class OMXPlayer implements Player , ProzessLauscher { private static final Logger logger = Logger.getLogger(OMXPlayer.class.getName()); + public static final String BLANK = " "; + public static final String CMD_DEC_SPEED = "1"; + public static final String CMD_DEC_VOL = "-"; + public static final String CMD_INC_SPEED = "2"; + public static final String CMD_INC_VOL = "+"; + public static final String CMD_NEXT_AUDIO = "k"; + public static final String CMD_NEXT_CHAPTER = "o"; + public static final String CMD_NEXT_SUB = "m"; + public static final String CMD_PAUSE_RESUME = "p"; + public static final String CMD_PREV_AUDIO = "j"; + public static final String CMD_PREV_CHAPTER = "i"; + public static final String CMD_PREV_SUB = "n"; + public static final String CMD_STOP = "q"; + public static final String CMD_TOGGLE_SUB = "s"; + public static final String F_PING = "ping"; + public static final String F_PLAY = "play"; + public static final String F_SEEK = "seek"; + public static final String OPT_HDMI_AUDIO = "-o%20hdmi"; + public static final String OPT_LOCAL_AUDIO = "-o%20local"; + public static final String PFEIL_HERAUF = "5b41"; + public static final String PFEIL_HERUNTER = "5b42"; + public static final String PFEIL_LINKS = "5b44"; + public static final String PFEIL_RECHTS = "5b43"; + public static final String SP_RUECK_30 = "rueck30"; + public static final String SP_RUECK_600 = "rueck600"; + public static final String SP_VOR_30 = "rueck30"; + public static final String SP_VOR_600 = "vor600"; + + /** * Einen Prozess zum Abspielen mit dem omxplayer starten * @param urlStr URL der Quelle, die abgespielt werden soll @@ -63,6 +110,7 @@ } */ + @Override public String abspielen(String urlStr, String parameter, String meldeUrlStr, String token) { String antwort;// = null; try { @@ -74,7 +122,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")); @@ -132,6 +180,7 @@ * * @return die Antwort des Servers */ + @Override public String tilgen() { String antwort; // = null; try { @@ -143,7 +192,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."; } @@ -161,6 +210,7 @@ * <a href="https://github.com/huceke/omxplayer/blob/master/README.md" target="_blank">Liste der Kommandos</a> * @return die Antwort des Servers */ + @Override public String kommando(String k) { String antwort; // = null; try { @@ -177,7 +227,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(); -- Gitblit v1.9.3