Запустите omxplayer "Всегда сверху" из кода Java
У меня есть RaspberryPi2 (версия 1 ГБ ОЗУ) с ОС Raspbian. Мне нужно запустить Omxplayer для воспроизведения видео. Если я выполняю новый процесс, Omxplayer находится на заднем плане. Мне нужен Omxplayer всегда на высоте. Как это сделать? Omxplayer не имеет права оставаться на вершине, как, например, mplayer (-ontop).
Я нашел ( https://askubuntu.com/questions/7377/how-to-start-an-app-with-always-on-top-set) wmctrl. Я попытался запустить Java, который выполняет omxplayer и после выполнения:
ProcessBuilder pb2 = new ProcessBuilder("bash", "-c", "wmctrl -a omxplayer");
Process p2 = pb2.start(); // Start the process.
но не работает, вероятно, потому что JavaFX работает с кадровым буфером, а не с X11. Источник: Почему мое приложение JavaFx не имеет фрейма при запуске на RaspberryPi?
Я чувствую, что невозможно запустить Omxplayer через Java в полноэкранном режиме на RaspberryPi.
Код для запуска omxplayer как новый процесс:
public class OmxPlayer {
private int xPosition;
private int yPosition;
private int width;
private int height;
/** Constructor.
*
* */
OmxPlayer (int xPosition, int yPosition, int width, int height) {
this.xPosition = xPosition;
this.yPosition = yPosition;
this.width = width;
this.height = height;
}
public void play(String url){
try {
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "omxplayer -r -o hdmi "+url);
Process p = pb.start(); // Start the process.
Log.write("I am playing file: "+url, Log.ENABLE_STDOUT);
//p.waitFor(); // Wait for the process to finish.
Log.write("File was played.", Log.ENABLE_STDOUT);
} catch (Exception e) {
StringWriter err = new StringWriter();
e.printStackTrace(new PrintWriter(err));
Log.write(err.toString(), Log.ENABLE_STDOUT);
}
}
}
Спасибо.