微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在部署时声音不会与QSoundEffect一起玩

我有一个难以debugging的问题。 我的程序需要时常播放声音(经常重叠几个声音文件)。 我主要是在Mac上开发,并且mac构build工作正常(使用Qt附带的macdeployqt实用程序打包),但是windows构build只会在编译机器上播放声音。 每个我已经运过来testing的人都没有得到任何声音(虽然我已经确认它正确地find声音文件,所以它绝对不是)。

在启动(从主窗口构造函数调用)我加载每个文件,像这样:

QSoundEffect *tmpSfx = new QSoundEffect(); QUrl pathAsURL; pathAsURL = pathAsURL.fromLocalFile(fileList.at(i).absoluteFilePath()); if (tmpSfx) { qDebug() << "path" << pathAsURL; tmpSfx->setSource(pathAsURL); tmpSfx->setLoopCount(1); tmpSfx->setVolume(0.4); // tmpSfx->play(); qDebug() << "is loaded" << tmpSfx->isLoaded(); SoundsList.append(tmpSfx)

SoundsList是一个QList<QSoundEffect *> 。

然后当我需要播放声音时,我打电话给:

在Azure中开始一个空白的Webangular色项目?

我在哪里可以find所有窗口类名称的列表?

Windows上的并行configuration错误

在Windows上安装Spree ImageMagick最简单的方法是什么?

从SendMessage()+ WM_copYDATA获取响应

SoundsList.at(Soundindex)->play();

在Windows上,我将这个应用程序作为一个zip文件分发,所有需要的Qt DLL都与它一起。 至less,我认为所有的Qt DLL是必需的。

Qt5Core.dll Qt5Gui.dll Qt5Multimedia.dll Qt5Network.dll Qt5Widgets.dll icudt52.dll icuin52.dll icuuc52.dll libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll platformsqwindows.dll

我错过了什么明显的?

在我用来构build它的机器上运行时,它工作正常。 在同一台机器上运行时,如果DLL不在同一个文件夹中,它会失败,除非我从Qt Creator运行它,这是我如何解决大部分DLL的依赖问题。 当它从任何其他Windows机器运行,它运行得很好,没有错误,但也没有声音输出

它用Qt 5.2编写,使用Creator和MinGW构build。

如何列出可用的监视器在C + + Windows 7中?

在Windows上使用Django上的多个cpu

在Windows上修改页表项

无法使用Ansible Playbook连接到Windows实例

在本地设置SVN?

很可能你错过了位于plugins audio qtaudio_windows.dll中的qtaudio_windows.dll。 部署时,应该在名为“audio”的子文件夹中的应用程序目录中。

问题很可能是你解决文件的方式。 您可以打印pathAsURL的值,在设置之后,查看它设置的内容,但是解决类似这样的文件通常是一个坏习惯,因为文件的路径很可能是硬编码到您计算机上的位置。 相反,导入您的程序中使用的文件作为资源。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐