我正在尝试创建一个可以打开和控制VLC播放器实例的python程序。我认为最好的方法是通过TCP连接使用VLC的rc
控件(因为标准标准输入似乎不接受非tcp版本)。我有以下代码片段:
cmd_options=['--control', 'rc:pause_click', '--rc-host', 'localhost:11235']
instance = Popen([r'C:\Program Files\VideoLAN\VLC\vlc.exe', *cmd_options], stdin=PIPE, stdout=PIPE, stderr=PIPE)
connection = create_connection(('localhost', 11235))
奇怪的是,成功或失败取决于Popen
,stdin
,stdout
,stderr
参数:
None
,则代码可以成功运行,尽管有时视频输出将在常规VLC窗口(这是我想要的)中,有时在较小的窗口(标题为Direct3D11输出)中stdin
或stdout
设置为PIPE
,它将始终在Direct3D11窗口中打开stderr
设置为PIPE,则程序将引发ConnectionRefusedError
,并且资源监视器将指示vlc不在侦听端口11235。这到底是怎么回事?在管道传输所有流时如何连接VLC端口?是否有更好的方法通过python连接到VLC
的{{1}}控件?