我有一个难以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上安装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] 举报,一经查实,本站将立刻删除。