Qt + Phonon:某些电脑无法播放

4
我在将应用程序部署到干净的机器后遇到了问题。以下是运行该应用程序的结果:
  1. Win7 Home:安装ffdshow后,程序可以播放wmv和mp3。
  2. Vista Home:安装ffdshow后,程序可以播放mp3,但不能播放wmv。
  3. WinXP(没有服务包):即使安装了ffdshow,也无法播放wmv和mp3。该程序可以找到38个后端,其中包括mp3和wmv。它可以播放wav文件。
  4. 在构建项目的计算机上,即使禁用了ffdshow中的许多格式,一切都可以正常播放。

插件文件夹放在exe文件旁边,并包含一个phonon_backends文件夹,其中包含phonon_ds94.dll。

有人能告诉我如何在未安装Qt的计算机上使程序播放文件吗?

3个回答

2
我不确定为什么 mp3 文件不能播放,但是你是否记得在无法播放视频的机器上部署 QtOpenGL4.dll?在 Windows 上, Phonon 后端依赖于这个 DLL,当它不存在时,程序会无声地停在那里什么也不做。
Sjwarner 建议尝试使用 Dependency Walker,特别是在插件 DLL 动态加载的情况下。

仅仅添加这个文件并没有帮助。其他文件也存在。我将使用依赖项查找器来找出缺失的内容。 - mimic
只是为了确认...文件夹叫做“phonon_backend”还是“phonon_backends”?(请看你的问题)末尾不应该有's'。我确定这是一个笔误,但我必须确认一下。 - Bart
嗯...感谢评论...我没有程序在眼前,但我认为它是正确的,因为它找不到后端。我尝试更改文件夹名称-一旦我重命名它,程序就无法找到任何后端。但无论如何,我会再检查一遍。 - mimic
我需要在pro文件中添加些什么吗? - mimic
+1 我曾经遇到过类似的问题,即 qmediaplayer 示例应用程序在开发机器上可以运行,但在其他机器上却无法运行。音频剪辑无法加载,也没有列出任何音频输出。后来发现这是由于缺少 phonon_backend 目录引起的。 - the_mandrill
显示剩余2条评论

1

我首先要做的是尝试使用 Dependency Walker。我将在上述所有部署状态下运行它,并查看应用程序在每种情况下使用的 dll 是否有任何差异。


哦,是啊,我也忘了这个工具。好主意!谢谢,我今晚会发布更新。 - mimic
好的,我已经在exe文件上运行了DW。一切看起来都很好,但有几件奇怪的事情: 1)它在树中没有显示qtopengl4.dll。 2)它显示需要IESHIM.dll。这是什么意思以及现在该怎么办?也许我运行错了什么?我不确定我是否正确理解了您关于不同状态的想法。我只是在dll上运行并查看依赖项树。 - mimic

0

我之前遇到了同样的问题,但是通过安装一个编解码器包来解决了。我使用的是这个:K-Lite Mega Codec pack(记得不要安装最后两个浏览器插件)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接