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

本文关键字:StdOut 控制 VLC StdIn 正确地 重定向 | 更新日期: 2023-09-27 18:04:19

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

我尝试使用远程控制接口vlc -I rc和重定向StdIn/StdOut启动VLC,我可以发送命令和接收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:一个可靠的,跨平台的音频/视频播放器,支持文件和网络流,可以集成在一个单声道/。. net支持的GUI框架会比这个尝试更好。

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

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