VLC远程控制VLC

我正试图从C#控制VLC媒体播放器。 我尝试使用.Net的FindWindow()命令在窗口上获取句柄,但是当我发现每次播放文件时窗口的名称都会改变。 我遇到的最大问题是将wm_commands发送到vlc ..这种方法适用于Winamp和Windows Media Player但是使用VLC似乎无法正常工作。

我读到VLC可以通过浏览器进行控制,但我不打算…我已经在其设置中看到它有一些可以调用的热键..但是它们可以被更改,如果我从中调用它们我的代码以某种方式…并且用户更改它们… bummer …

我有点卡住了……任何帮助都会很棒……索林

我有一些代码能够使用 RC接口上的套接字来控制它 。 这在一定程度上有效,但有很多怪癖。 在调用播放后的几秒钟内,进入全屏似乎什么都不做。 总的来说它有点工作。

其他选择是:

编写一个DirectDrawfilter(非常难),但一旦完成,可以使用VLC代替FFMPEG或与FFMPEG一起使用。 驱动媒体播放器的现有代码可以使用vlc。

libvlc写一个interop包装器,最近VLC团队从libvlc拆分了libvlccore ,所以据我所知,所有的interop都已经过时了。 编写包装器后,可以在Windows应用程序中嵌入vlc。 (如果需要支持x64,则需要在x64下编译这些库。

查看VLC代码,找出是否有办法发送这些Windows消息。

编辑本周似乎已经出现了。

正如Eoin所说, libvlc可用于与VLC交互。 作为C#用户,您可能希望尝试libvlc-sharp项目提供的.NET绑定。

编辑:似乎这个项目多年来一直没有维护。 无论如何,我会留下链接,以防你想看看它,也许可以使用它的一些来源。

你看过libvlc了吗?

您可以将其包装在库中并通过它与VLC进行交互。

还有rc接口甚至是telnet接口: http : //wiki.videolan.org/Console

但是,如果可能的话,我更喜欢libvlc。

如果您要执行的操作是控制先前运行的可执行文件,请检查Process类以枚举所有当前进程或按名称执行 。 检查可执行文件以匹配vlc.exe 。 然后,您可以获取主窗口的句柄,并在执行其他可执行文件时执行一些P / Invoke来发送消息。 这显然充满了潜在的问题,例如键盘切割是否有变化。