【问题标题】:How to prevent console from being displayed when using VLC's dummy interface使用 VLC 的虚拟界面时如何防止控制台显示
【发布时间】:2013-07-07 18:40:49
【问题描述】:

我正在尝试从 Node.js 服务器脚本以“虚拟”模式启动 VLC,但是在使用 Windows 时使用child_process.spawn('vlc',['-I dummy']) 会为 VLC 的输出生成一个新的控制台窗口。有没有办法防止这种情况发生并通过标准输出 ReadableStream 强制所有标准输出,这样就不会出现“弹出窗口”?

编辑:这个问题与 node.js 无关,它只是我调用它的方式和 VLC 的行为。解决方法如下。

谢谢。

【问题讨论】:

  • 我注意到 -I telnet 不会弹出控制台,所以我将使用它来代替。
  • 但是,telnet 接口没用——我更喜欢使用 RC 接口,但这与 dummy 新窗口有同样的问题——更糟糕的是,stdin 标准输出似乎不起作用

标签: windows node.js subprocess vlc child-process


【解决方案1】:

我找到了针对具体问题的解决方案:

VLC 有一个命令行选项来隐藏这个窗口 --*-quiet 其中 * 是接口。

例如对于虚拟接口,使用

child_process.spawn('vlc',['-I dummy','--dummy-quiet'])

对于rc接口,使用

child_process.spawn('vlc',['-I rc','--rc-quiet'])

【讨论】:

    【解决方案2】:

    我想补充 Adam M-W 的答案。

    VLC 有一个命令行选项来抑制这个窗口 --*-quiet 其中 * 是接口。

    例如对于虚拟接口,使用

    child_process.spawn('vlc',['-I dummy','--dummy-quiet']) 对于rc 接口,使用

    child_process.spawn('vlc',['-I rc','--rc-quiet'])

    于 2011 年 6 月 13 日 14:12 回答 亚当 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;
    }
    

    使用 SeparateChannels 并读取 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;
    }
    

    【讨论】:

      【解决方案3】:

      也许您可以改用child_process.spawn('start', ['/b', 'vlc', '-I dummy']) 运行该进程?

      【讨论】:

        猜你喜欢
        • 2012-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-12
        • 2016-05-19
        • 1970-01-01
        • 1970-01-01
        • 2011-08-28
        相关资源
        最近更新 更多