【问题标题】:How to properly redirect StdIn/StdOut to control VLC?如何正确重定向 StdIn/StdOut 以控制 VLC?
【发布时间】:2015-07-22 20:22:23
【问题描述】:

我正在编写一个独立于平台的 C# 应用程序(我的目标是 Windows 和 Raspbian)。我想使用 VLC 进行音频播放。

我尝试使用远程控制界面vlc -I rc启动VLC,并重定向StdIn/StdOut,我可以发送命令和接收VLC进程的信息:

vlcproc = new Process();
vlcproc.StartInfo = new ProcessStartInfo(VLCPath, "-I rc");
vlcproc.StartInfo.UseShellExecute = false;
vlcproc.StartInfo.RedirectStandardInput = true;
vlcproc.StartInfo.RedirectStandardOutput = true;
bool res = vlcproc.Start();
vlcproc.OutputDataReceived += vlcproc_OutputDataReceived;

但它没有按预期工作。如果我使用vlcproc.StandardInput.WriteLine() 编写一些命令,VLC 似乎什么也得不到。我尝试在本地文件和流上使用add ...。使用 C#,不播放 - 手动输入,播放。我也没有得到任何 StdOut 信息(由事件处理程序中的Console.Write() 打印)。

我做错了什么?

PS:一个可靠的、跨平台的音频/视频播放器,支持文件和网络流,并且可以集成到支持 Mono/.NET 的 GUI 框架中,这将比这次尝试更好。

【问题讨论】:

    标签: c# redirect process vlc


    【解决方案1】:

    问题是 VLC 不作用于 stdout/stin。我能够通过script -c "<vlc command with parameters>" 运行它来解决标准输出问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      相关资源
      最近更新 更多