Я пишу веб-приложение для домашней автоматизации. У меня есть музыка, которая транслируется из музыки Google в мои колонки, и я использую vlc для вывода звука. То, что я не могу сделать, - это, по-видимому, приостановить песню удаленно. Например, cvlc url откроет и передаст URL-адрес, затем он войдет в интерактивный режим, где можно ввести паузу, и она будет приостановлена.Открыть терминал, выполнить команду и ввести интерактивный режим
Когда я пытаюсь сделать это из моего приложения node.js, ничего не происходит. Он просто продолжает играть.
var terminal = require('child_process').spawn('bash');
terminal.stdout.on('data', function (data) {
console.log(data);
});
terminal.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
terminal.stdin.write('cvlc "' + req.url +'" & \n');
terminal.stdin.write('pause');
Изменен, var terminal = require ('child_process'); term = terminal.spawn ('cvlc', [req.url]); term.stdin.write ('пауза \ п'); Все еще начинается песня, а затем не приостанавливается. –
И путь по умолчанию должен быть точным. Если я запускаю ту же самую команду в прямом терминале, она вызывает подсказку, в которой вы можете ввести паузу, воспроизведение, быстрый и т. Д. В принципе, я хочу, чтобы можно было вызвать подсказку и взаимодействовать с ней. –
Вы получаете что-нибудь из stdout? Btw, stdout является шестнадцатеричным буфером, вам лучше: console.log (data.toString()); – Meir