libvlc在wxpython项目中运行,在单独的窗口中播放媒体

libvlc在wxpython项目中运行,在单独的窗口中播放媒体,python,wxpython,libvlc,Python,Wxpython,Libvlc,我正在使用来自的基于WX的视频播放器的vlc python示例代码 操作系统是Windows10 除了在播放开始前创建的单独窗口中播放媒体外,所有操作都很顺利 我使用以下代码创建了播放器实例: self.videopanel = wx.Panel(self, -1) ... self.Instance = vlc.Instance('--verbose 3') self.player = self.Instance.media_player_new() self.player.set_xwind

我正在使用来自的基于WX的视频播放器的vlc python示例代码

操作系统是Windows10

除了在播放开始前创建的单独窗口中播放媒体外,所有操作都很顺利

我使用以下代码创建了播放器实例:

self.videopanel = wx.Panel(self, -1)
...
self.Instance = vlc.Instance('--verbose 3')
self.player = self.Instance.media_player_new()
self.player.set_xwindow(self.videopanel.GetHandle())

并获得了与“vout”相关的以下调试行:

... [skipped]
[000000000855a530] main window debug: looking for vout window module matching "embed-xid,any": 3 candidates
... [skipped]
[000000000855a530] main window debug: no vout window modules matched
... [skipped]
[00000000085aa8c0] main vout display debug: looking for vout display module matching "any": 12 candidates
... [skipped]
[00000000085aa8c0] main vout display debug: using vout display module "direct3d11"
有人能给我一个关于如何强制libvlc使用WX媒体窗口的线索吗

非常感谢

Rubber勾选了答案:)对于Windows,应该使用
set\u hwnd
API调用,而不是
set\u xwindow
(适用于X11系统)

谢谢大家

if os.name == 'nt':
    self.player.set_hwnd(self.videopanel.GetHandle())
else:
    self.player.set_xwindow(self.videopanel.GetHandle())