Я хочу иметь возможность воспроизводить видео на своем Raspberry Pi и управлять им с телефона. Изучив это, я решил использовать SSH-соединение, а затем воспроизвести видео по ссылке с помощью OMXPlayer. Сначала я использовал канал session.openChannel("exec");
для отправки команды, которая выглядела бы как omxplayer '[link]'
. Однако, осмотревшись, я обнаружил, что канал exec
может реально выполнять только одну команду или цепочку команд, как показано здесь это не подходит, так как мне нужно иметь возможность сделать паузу в любое время. Поэтому вместо этого я использовал канал shell
. В качестве теста я просто использовал потоки ввода и вывода по умолчанию.
Примечание. Я использую JSch для SSH.
try {
JSch jsch = new JSch();
Session sesh = jsch.getSession("pi", "***.***.***.***", 22);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
sesh.setConfig(config);
sesh.setPassword("*");
sesh.connect(3000);
Channel chan = sesh.openChannel("shell");
chan.setInputStream(System.in);
chan.setOutputStream(System.out);
chan.connect(3000);
} catch(Exception e) {
e.printStackTrace();
}
Этот код открывает полуфункциональную оболочку, которую я могу использовать для выполнения команды, и видео воспроизводится, однако горячие клавиши (пробел = воспроизведение/пауза, q = выход, стрелка влево = поиск назад, стрелка вправо = поиск вперед) делают не работает. Я пытался просто нажать клавишу, как в обычной оболочке, и нажать клавишу и ввести только в качестве теста, но ни один из них не работал. Итак, вопрос: кто-нибудь знает, как заставить горячие клавиши работать в канале оболочки? Или кто-нибудь знает, как заставить горячие клавиши работать с exec-каналом так, как мне нужно, с JCH?
Любая помощь приветствуется.
omxplayer
. Вам не нужна оболочка для этого. - person Martin Prikryl   schedule 06.04.2017StrictHostKeyChecking=no
. - person Martin Prikryl   schedule 06.04.2017