c++ - Windows 7 中的声子问题,代码在 XP 中编译

标签 c++ qt windows-7 phonon

我有一些代码是使用 Visual Studio 2010 (C++) 编译的,Qt 用于 GUI,Phonon 用于显示一些视频。

我在 Windows XP 机器上编译并运行代码,一切正常。视频和控件显示正确,在其他 Windows XP 机器上也一样。但是在我尝试使用 Windows 7 机器的那一刻,视频没有显示。 Phonon 控件已加载,我可以调整 Phonon VideoWidget 的大小,但没有显示任何内容。我正在使用 SetFile 方法来指示文件位置,并且我还尝试(当然,没有运气)在 MediaObject 中使用 setCurrentSource(尽管它在 Windows XP 中有效)。

我尝试了不同的文件位置(绝对/相对),但似乎没有任何效果。此外,在 XP 中,当找不到视频时会显示一条警告消息,而在 Windows 7 中则没有错误消息,但也不会显示视频。如果我尝试用其他播放器打开视频,它们工作正常(我也尝试过不同格式的视频)。

知道什么地方可能出错吗? Phonon 和 Windows 7 是否遗漏了什么?谢谢!

最佳答案

将应用程序部署到另一台计算机时,请确保不要忘记复制 Phonon 后端。不仅仅是其中包含的 DLL(对我来说是 ds 后端),还有目录本身。

也就是

 -Application Directory
 ¦-myexe.exe
 ¦-phonon_backend
  ¦-phonon_ds94.dll

此外,Windows(我认为还有 Mac)上的 Phonon 后端使用了 QtOpenGL 模块。所以也不要忘记复制它。它可以进入应用程序目录。

在任何情况下,您都可以通过添加一小段代码来帮助自己解决问题(可能写入文件)which mimetypes are available .如果它没有吐出任何东西,则说明您的后端有问题。 (好吧,你的应用程序......)

这是我在应用程序中使用 Phonon 播放视频时必须做的事情。由于我只是在不久前才将它快速添加到我的应用程序中,所以我不能 100% 确定这是唯一(甚至是正确的)方法,所以任何有不同见解的人都可以对此发表评论。

关于c++ - Windows 7 中的声子问题,代码在 XP 中编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5918043/

相关文章:

python - 如何在 PyQt 应用程序退出时禁用清除剪贴板?

c++ - QLayout 和 QWidget 之间的转换

c++ - 了解 QVector append() - 为什么它有条件地复制?

java - 无法使用 AVD 在 Windows 7 上绑定(bind)端口 1131

c++ - 动态生成对象的 glewInit() 错误?

c++ - GNU GCC (g++) : Why does it generate multiple dtors?

c++ - 实现多线程环境

c++ - 为什么当类的数据成员更改为引用时输出不同

vim - 使用特定位置的 vimfiles 启动 vim

delphi - 需要在windows中解析HMONITOR --> deviceName(或deviceName --> HMONITOR)