Как предотвратить отображение консоли при использовании фиктивного интерфейса VLC
Я пытаюсь запустить VLC в "фиктивном" режиме с узла.сценарий сервера js, однако, используя child_process.spawn('vlc',['-I dummy'])
, создает новое окно консоли для вывода VLC при использовании Windows. Есть ли способ предотвратить это и заставить все stdout, хотя stdout ReadableStream так что никаких "всплывающих окон" не происходит?
EDIT : эта проблема не имеет ничего общего с узлом.js, это было просто так, как я называл это и поведение VLC. Решение находится ниже.
Спасибо.
3 ответа:
Я нашел решение для конкретной задачи:
VLC имеет опцию командной строки для перезапуска этого окна -- * - quiet, где * - интерфейс.
Например, для фиктивного интерфейса используйте
child_process.spawn('vlc',['-I dummy','--dummy-quiet'])
Для интерфейса rc используйте
child_process.spawn('vlc',['-I rc','--rc-quiet'])
Я хотел бы дополнить ответ Адама M-W.
VLC имеет опцию командной строки для подавления этого окна -- * - quiet, где * - интерфейс.
Например, для фиктивного интерфейса используйте
Child_process.spawn ('vlc',['-я болван','--dummy-quiet']) для rc интерфейс, использовать
Child_process.spawn ('vlc',['-я ру','--rc-тихий'])
Ответил 13 Июня 11 в 14: 12 Adam M-W
по крайней мере, в моей системе, VLC теперь отправляет свои сообщения в stdError, так что это канал, который нужно контролировать.
Мой интерфейс с Qt, QtProcess, и это те опции, которые работали для меня.
Использование MergedChannels и чтение stdOut .
m_proc->setProcessChannelMode(QProcess::MergedChannels); connect (m_proc,SIGNAL(readyReadStandardOutput()), this, SLOT(readyRead())); void ReDirVLC::readyRead(){ if (!m_proc) return; qDebug()<<m_proc->readAllStandardOutput() << endl; }
Использование отдельные каналы и чтение stdError
m_proc->setProcessChannelMode(QProcess::SeparateChannels); connect (m_proc,SIGNAL(readyReadStandardError()), this, SLOT(readyRead())); void ReDirVLC::readyRead(){ if (!m_proc) return; qDebug()<<m_proc->readAllStandardError() << endl; }