Fix: Player not starting when path contains spaces

This commit is contained in:
0xboobface 2018-11-29 17:53:26 +01:00
parent cbe466e7b9
commit 88bddcb188
1 changed files with 7 additions and 1 deletions

View File

@ -120,7 +120,11 @@ public class Player {
try { try {
if (Config.getInstance().getSettings().localRecording && rec != null) { if (Config.getInstance().getSettings().localRecording && rec != null) {
File file = new File(Config.getInstance().getSettings().recordingsDir, rec.getPath()); File file = new File(Config.getInstance().getSettings().recordingsDir, rec.getPath());
playerProcess = rt.exec(Config.getInstance().getSettings().mediaPlayer + " " + file, OS.getEnvironment(), file.getParentFile()); String[] args = new String[] {
Config.getInstance().getSettings().mediaPlayer,
file.getName()
};
playerProcess = rt.exec(args, OS.getEnvironment(), file.getParentFile());
} else { } else {
if(Config.getInstance().getSettings().requireAuthentication) { if(Config.getInstance().getSettings().requireAuthentication) {
URL u = new URL(url); URL u = new URL(url);
@ -136,10 +140,12 @@ public class Player {
// create threads, which read stdout and stderr of the player process. these are needed, // create threads, which read stdout and stderr of the player process. these are needed,
// because otherwise the internal buffer for these streams fill up and block the process // because otherwise the internal buffer for these streams fill up and block the process
Thread std = new Thread(new StreamRedirectThread(playerProcess.getInputStream(), new DevNull())); Thread std = new Thread(new StreamRedirectThread(playerProcess.getInputStream(), new DevNull()));
//Thread std = new Thread(new StreamRedirectThread(playerProcess.getInputStream(), System.out));
std.setName("Player stdout pipe"); std.setName("Player stdout pipe");
std.setDaemon(true); std.setDaemon(true);
std.start(); std.start();
Thread err = new Thread(new StreamRedirectThread(playerProcess.getErrorStream(), new DevNull())); Thread err = new Thread(new StreamRedirectThread(playerProcess.getErrorStream(), new DevNull()));
//Thread err = new Thread(new StreamRedirectThread(playerProcess.getErrorStream(), System.err));
err.setName("Player stderr pipe"); err.setName("Player stderr pipe");
err.setDaemon(true); err.setDaemon(true);
err.start(); err.start();