uuhua的个人主页

http://www.qtcn.org/bbs/u/136486  [收藏] [复制]

uuhua

  • 4

    关注

  • 7

    粉丝

  • 20

    访客

  • 等级:新手上路
  • 总积分:16
  • 保密,1985-11-01

最后登录:2018-04-24

更多资料

日志

QMediaPlayer插件问题

2016-07-12 10:15
使用QMediaPlayer后,在QCreator中可以正常播放,release发布之后,没有声音。  可以在程序中判断player.isAvailable()返回的值,如果为false则表示QtMultimedia 插件没有加载成功。
插件的正常加载方法如下:
原文地址:http://www.cnblogs.com/ungshow/archive/2010/10/10/1847082.html
在 Qt的安装目录中有一个plugins的目录,这个目录放着一些常用的插件,有数据库驱动、文字编码插件、图像解析等方面的,也基本上一个完整应 用所必需的——因为你总会在应用中使用数据库,中文,使用图片等(尽管不是一定有这些操作)。发布应用时,你需要把你使用到的插件带上,你会把 plugins目录下的一些dll文件直接复制出来,与exe文件放在一起,或者在再新建一个plugins目录用于放置插件文件。在应用中使用 QApplication::addLibraryPath(“./”)或者QApplication::addLibraryPath(“. /plugins”)。但还是解决不了找不到插件的问题。

根据官方的说明:

假设你的应用app.exe位于appdir目录,如下:

+appdir
         -app.exe

那么,appdir目录其实就等同于plugins目录。也就是说,当你应用运行的时候,它会在appdir目录下面找qt的插件。但是,Qt的插件是按不同的目录放置的,当你从Qt的安装文件目录下复制插件时,还需要创建相应的目录结构。如下,使用数据库插件:

+appdir
         -app.exe
         +sqldrivers
                  -qsqlite4.dll

现在即便不使用QApplication::addLibraryPath(“./”),也可以找到数据库驱动了。

或者使用QApplication::addLibraryPath(“./plugins”),将目录结构建成如下的样子,也是可以的:

+appdir
         -app.exe
         +plugins
                  +sqldrivers
                           -qsqlite4.dll

这样也是正常运行的。重要的,其实是只有一点。使用qt的插件时,要注意带上相应的目录。如果有一点Qt插件开发的经验的话,理解起来就比较方便吧。

还 有需要提醒的一点,就是图片、文字编码的插件。使用起来和上面的例子一样,只是容易被忽略掉。等到发布应用后,发现乱码了,或者是按钮上的图片显 示不了等问题是,就应该想到这一点。开发的时候一切正常,在没有Qt环境的机器上测试的时候,怎么就都不正常了呢?八成就是少了这些插件。

另外,在Windows环境上开发,可以使用SysinternalsSuite工 具来查看应用在运行时具体依赖了哪些dll文件。它是微软提供的一套开发小工具集合。其中的process explorer工具可以查看系统进程并显示出这个进程使用到的dll以及dll所在的目录。当应用加载不了dll,或者加载了错误的dll时,用它就更 加方便了。
分类:默认分类|回复:0|浏览:1328|全站可见|转载
 

下一篇: 编译Qt5Ftp(转)

上一篇: CMake与Make

Powered by phpwind v8.7 Certificate Copyright Time now is:04-27 07:07
©2005-2016 QTCN开发网 版权所有 Gzip disabled