当前位置:编程学习 > wap >>

使用Qsound播放音频release版本发布后无法播放,求助!!!

sound=new QSound("D:/mysound/music.wav",this);源代码使用绝对路径在本机上课正常运行,但release后移植到其他电脑无法播放,怎么解决啊,求指教。wav文件不知道怎么打包发布啊 --------------------编程问答-------------------- 别写成绝对路径,写成相对路径,比如你在运行目录下面创建一个 music的目录,然后将music.wav放到该目录,你用sound=new QSound("./music/music.wav",this); --------------------编程问答--------------------
引用 1 楼 xiebin133 的回复:
别写成绝对路径,写成相对路径,比如你在运行目录下面创建一个 music的目录,然后将music.wav放到该目录,你用sound=new QSound("./music/music.wav",this);

不行呀,用你这种相对路径本机编译运行都没法播放声音。我的工程目录放在D:/demo下,构建目录在D:/demodemo-desktop下,这个路径到底该怎么写呀 --------------------编程问答-------------------- 我也发布过,当时一直不行,后面可以了。
你直接把它做成资源文件,就可以了,就好比资源文件里面的图片加载一样的
比如说:
Phonon::MediaObject *backgroundMusic;
 backgroundMusic->setCurrentSource(Phonon::MediaSource(":/sounds/background.mp3"));
当然这只是我的当时的方法
其实主要就是需要打包哪些文件,我一一列出吧(release版本下的应用程序、文件夹4.7.2下的plugins下的imageformats文件夹与phonon_backend文件夹、bin目录下的libgcc_s_dw2-1.dll、mingwm10.dll、phonon4.dll、QtCore4.dll、QtGui4.dll) --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 3 楼 dxhua863plan 的回复:
我也发布过,当时一直不行,后面可以了。
你直接把它做成资源文件,就可以了,就好比资源文件里面的图片加载一样的
比如说:
Phonon::MediaObject *backgroundMusic;
 backgroundMusic->setCurrentSource(Phonon::MediaSource(":/sounds/background.mp3"));
……


+1

使用相对路径肯定也是可以的可能是你的路径没有写好吧。
你吧sound.wav复制到工程目录下(有很多文件夹你不能确定的话建议都复制一个进去)。
然后使用路径的时候用:"sound.wav"就可以了

不过还是建议使用qrc对资源文件进行管理,很方便也不复杂,同时资源直接嵌入exe中不会丢失 --------------------编程问答--------------------
引用 2 楼 rurutianoirlilia 的回复:
引用 1 楼 xiebin133 的回复:别写成绝对路径,写成相对路径,比如你在运行目录下面创建一个 music的目录,然后将music.wav放到该目录,你用sound=new QSound("./music/music.wav",this);
不行呀,用你这种相对路径本机编译运行都没法播放声音。我的工程目录放在D:/demo下,构建目录在D:/demodemo-de……
 你这个肯定是你的运行目录设置错了,你看看你QtCreator左边一列的项目里面运行设置中的 工作目录设置,这个 目录就是你程序的运行目录,你要在这个目录下创建一个music目录,然后将文件放到该目录下,发行版基本上不可能用绝对路径的。你不可能要求用户将你的程序安装到你指定的路径下。
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,