Hello其他程序员!
我用Qt编写了一个视频播放器。我的Mac上一切正常,但是当我使用macdeployqt部署我的应用程序并打开结果时,我收到以下消息:
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to Phonon::AudioOutput ( no objectName ).
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
...
当然它不播放音频(在我的机器或其他机器中)。 Maqcdeployqt确实包括Qt的其他部分和3个方库的问题。它只是该声音的声音。 我觉得我犯了一个愚蠢的错误,但我无法找到它。 我的应用程序的otool日志显示:
@executable_path/../Frameworks/phonon.framework/Versions/4/phonon (compatibility version 4.4.0, current version 4.4.0)
作为声子的唯一参考。
我在qt的文档中读到了以下内容:
“Mac部署工具可以在QTDIR / bin / macdeployqt中找到。它旨在自动创建包含Qt库作为私有框架的可部署应用程序包的过程。 mac部署工具还根据以下规则部署Qt插件:
- 未部署插件版本的插件。 - 未部署设计器插件。 - 始终部署图像格式插件。 如果应用程序使用QtSql模块,则部署-SQL驱动程序插件。 如果应用程序使用QtScript模块,则部署-Script插件。 - 如果应用程序使用QtSvg模块,则部署svg图标插件。 - 始终部署辅助功能插件。 “
也许我有声音的调试版本?我不知道,我已经尝试部署调试和发布版本,但没有一个有效。
此外,我在此页面中创建了一个相关问题: http://www.justinfx.com/tag/phonon/ 所以我在我的捆绑包中包含了一个名为'PlugIns'的文件夹,其中包含了我的系统内部的phonon_backened文件夹:它在我的机器上播放音频(但它没有在另一台机器上播放)而我的应用程序在最后崩溃了这样就不行了。
我正在使用c ++,Qt 4.8.5,来自SDK的声子(我没有安装任何版本的声子,我刚刚安装了Qt)和Mac OS X(10.6.8)
我很想听到任何想法或建议。
提前致谢。
答案 0 :(得分:0)
我没有找到错误的来源,但是我通过从另一台Mac(即Lion)上的qt examples文件夹中部署phonon示例来绕过它。它包含了所有声子内容中的文件夹'Plugins',因此我现在将该文件夹包含在我的Snow Leopard中手动部署的macdeployed中。它很难看,但从现在开始起作用。
如果有人知道解决问题的方法,我会很高兴听到它。
答案 1 :(得分:-1)
我使用py2app
(pyinstaller
和cx_freeze
都没有工作)并且它几乎完美地创建了应用程序分发文件夹,除了它没有复制声子后端。运行macdeplpyqt
没有帮助。
您的应用结构中插件的位置为MyApp.app/Contents/PlugIns
,因此我将文件夹从Qt install(/Developer/Applications/Qt/plugins/phonon_backend/
)复制到PlugIns
文件夹中。这仍然给出了同样的错误。
进一步挖掘我看到MyApp.app/Contents/Resource/qt.conf
文件期望插件位于Resource/qt_plugins
文件夹中,因此我创建了从PlugIns MyApp.app/Contents/PlugIns
到MyApp.app/Contents/Resource/qt_plugins
的所有符号链接现在有效。