如何正确重定向StdIn / StdOut来控制VLC?

问题描述 投票:3回答:1

我正在编写一个独立于平台的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个回答
0
投票

问题是VLC不会对stdout / stin起作用。我能够通过script -c "<vlc command with parameters>"运行来解决stdout问题。

© www.soinside.com 2019 - 2024. All rights reserved.