• 6085阅读
  • 4回复

如何在程序中指定phonon的backend [复制链接]

上一主题 下一主题
离线rashka
 

只看楼主 倒序阅读 楼主  发表于: 2009-05-09
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
大家好!我想请教一下如果机器上同时装了gstreamer和xine,那么phonon是如何选择用哪个作后端的,有没有什么办法可以自己指定?
离线rashka

只看该作者 1楼 发表于: 2009-05-10
这个问题很困难吗?要不我说得详细一点。
我最近在nokia的mameo平台上开发qt程序,maemo平台是基于gnome的,默认的多媒体框架是gstreamer,但我用phonon开发播放器时发现在maemo上gstreamer对phonon支持的不够好,很多格式的音频和视频都放不了,所以我想试试看移植xine到maemo上去,但等我把xinelib和phonon-xine-backend在scratchbox里编译好放到N800上去以后,发现phonon找的还是gstreamer后端。所以我想问的是如何才能让phonon选择xine作为后端?希望知道的或有些想法的都在此跟个贴,这个问题困扰我很久了,多谢!
离线rashka

只看该作者 2楼 发表于: 2009-05-12
这个帖子放上去好几天了,怎么还没人回答我,急死我了
离线rashka

只看该作者 3楼 发表于: 2009-05-13
最后一次顶贴,再没人回答我只能放弃了
离线gvim
只看该作者 4楼 发表于: 2009-05-13
去翻翻这段代码吧,要么改吧改吧
qt-embedded-linux-opensource-src-4.5.1/src/3rdparty/phonon/phonon/factory.
cpp
134             foreach (const QString &pluginName, dir.entryList(QDir::Files))     {
135                 QPluginLoader pluginLoader(libPath + pluginName);
136                 if (!pluginLoader.load()) {
137                     pDebug() << Q_FUNC_INFO << "  load failed:"
138                              << pluginLoader.errorString();
139                     continue;
140                 }
141                 pDebug() << pluginLoader.instance();
142                 m_backendObject = pluginLoader.instance();
143                 if (m_backendObject) {
144                     break;
145                 }
146
147                 // no backend found, don't leave an unused plugin in memory
148                 pluginLoader.unload();
149             }
要么把插件目录下的gstreamer去掉。
Qt,Qt! 分享Cute之Qt体验
欢迎访问 http://www.cuteqt.com
欢迎订阅 http://www.cuteqt.com/?feed=rss2

快速回复
限100 字节
 
上一个 下一个