我正在尝试使用wxPython编写相框应用程序。为了观看视频和照片,我开始使用wx.media,但发现gstreamer后端不够用。所以我转向mplayerctrl并将其移植到Python3 / Phoenix。我一直在努力让它工作的是以编程方式检索窗口ID以传递到mplayer,以便视频在帧内播放。我已经验证了如果我从xwininfo获取窗口id,这是有效的,但是如果我使用GetHandle()它返回0并且如果我使用GetGtkWidget()它返回一个值,但该值与窗口id不对应。 mplayerctrl的股票版本使用了self.Handle。 https://docs.wxpython.org/wx.Window.html
我正在寻找一种适用于Linux的解决方案,但希望可以移植到其他平台。理想情况下,这个解决方案也是wxPython / Python native。
由于
答案 0 :(得分:0)
我认为您过早尝试设置handle
我怀疑你正在启动handle
作为初始化程序的一部分。我发现你应该等到你选择要播放的视频并在那时使用self.xxxxx.GetHandle()
,即你为要求玩家玩的每个项目执行该功能。
我用python 3.5.2 wxpython 4.0.02b Linux Mint 18.2并使用Vlc
测试了这个。
似乎MainLoop
必须在GetHandle
返回有效值之前启动。