我有一些代码是使用 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/