libvlc在wxpython项目中运行,在单独的窗口中播放媒体
我正在使用来自的基于WX的视频播放器的vlc python示例代码 操作系统是Windows10 除了在播放开始前创建的单独窗口中播放媒体外,所有操作都很顺利 我使用以下代码创建了播放器实例: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
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())