0

我在 PyQt 邮件列表上问了这个问题,但没有得到任何回复,所以我会在这里碰碰运气。

我遇到了一个令人沮丧的问题(仅在 Windows 上):尝试创建 VideoWidget 实例时,我收到错误消息“无法正确初始化视频小部件”。奇怪的是,经过几周的完美操作后,这才出现在代码中,在两个单独的 Windows 机器上(一个是 Vista,另一个是通过 Parallels 运行的 XP 映像)。我不知道可能导致它的环境发生了任何变化。

我正在使用 Python 2.6 和 PyQt 4.5.4 Windows 安装程序。我注意到这个问题是在去年 11 月提出的,但没有提供解决方案:

http://www.riverbankcomputing.com/pipermail/pyqt/20​​08-November/021029.html

我的谷歌搜索没有找到任何可能导致这种情况的解释。任何人都可以提示我吗?

4

2 回答 2

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;
 }

Filter 是类型ComPointer<IBaseFilter>,它的构造函数进行了以下失败的调用(操作符调用返回 m_t,它被分配给上面的 m_filter):

::CoCreateInstance(clsid, 0, CLSCTX_INPROC_SERVER, iid,
                reinterpret_cast<void**>(&m_t));

因此,它在 Windows API 调用中失败。您可以修改源代码以找出 CoCreateInstance 的返回值是什么,以隔离原因,但它看起来与您的系统更改有关,我不知道如何进一步提供帮助。祝你好运。

于 2009-08-18T00:56:12.607 回答
0

讨厌回答我自己的问题,但如果其他人遇到这个:

对此的解决方案最终是特定于硬件的。Phonon 似乎对特定虚拟机的视频驱动程序有问题 - 在我的情况下是 Parallels。物理硬件没有出现问题。我找不到解决方法。

于 2009-11-19T15:47:58.190 回答