我在PyQt邮件列表上问了这个问题,没有得到任何回复,所以我会在这里试试运气。
我遇到了令人沮丧的问题(仅限Windows):在尝试创建VideoWidget实例时,我收到错误消息“视频窗口小部件无法正确初始化”。奇怪的是,经过几个星期的完美操作后,这只是在两个独立的Windows机箱(一个Vista,另一个是通过Parallels运行的XP映像)上出现在代码中。我不知道可能导致环境发生变化的事情。
我正在使用Python 2.6和PyQt 4.5.4 Windows安装程序。我注意到这个问题是去年11月提出的,但没有提供解决方案:
http://www.riverbankcomputing.com/pipermail/pyqt/2008-November/021029.html
我的谷歌搜索没有找出任何可能导致这种情况的解释。任何人都可以提醒我吗?
答案 0 :(得分:3)
生成该消息的代码位于3rdparty/phonon/ds9/videorenderer_vmr9.cpp
:
m_filter = Filter(CLSID_VideoMixingRenderer9, IID_IBaseFilter);
if (!m_filter) {
qWarning("the video widget could not be initialized correctly");
return;
}
过滤器类型为ComPointer<IBaseFilter>
,其构造函数进行以下失败调用(操作员调用返回m_t,上面分配给m_filter):
::CoCreateInstance(clsid, 0, CLSCTX_INPROC_SERVER, iid,
reinterpret_cast<void**>(&m_t));
因此,它在Windows API调用中失败了。您可以修改源代码以找出CoCreateInstance的返回值以隔离原因,但看起来它与系统上的更改有关,我不知道如何进一步提供帮助。祝你好运。
答案 1 :(得分:0)
讨厌回答我自己的问题,但如果有其他人遇到这个问题:
解决方案最终成为特定于硬件的解决方案。 Phonon似乎与特定虚拟机的视频驱动程序有关 - 在我的案例中是Parallels。物理硬件不会出现此问题。没有我能找到的解决方法。