cocos2d-x-3.2VS2013加入音乐代码程序闪退问题

是这样的,在一台电脑上编译好的,能够完美运行的程序,移植到另外一台电脑后运行就出现闪退。
逐步检查发现是音乐播放代码 CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(“backgroundmusic1.mp3”, true); 的问题。
程序编译没有报错,而是弹出窗口后退出。
将音乐播放代码注释掉程序能够完美运行不闪退。
表示不是电脑问题,几个同学都遇到了相同的问题。
百思不得其解,求各位前辈不吝赐教!

有谁能帮忙吗?如果是我叙述有问题可以提出来啊,有人遇到类似的问题吗?

贴代码啊 ,, 没遇到过!

怎么检查确认是音乐播放代码的错误?运行的时候有错误的提示吗?

没有提示,没有报错,直接结束程序。我周围有三个同学出现了同样的情况,起先我以为是cocos没装好,重装两次发现问题一样,我拿他们的电脑创建了一个新的helloworld,运行正常,加入音乐代码和文件,出现同样的情况,当到执行音乐播放代码的时候程序就直接结束,没有报错,没有中断,我用的cocos2d-x-3.2,vs2013。

起先我是将我的电脑上运行正常的程序移植到同学电脑上试试,发现闪退(就是直接出现运行框就直接关闭,没有报错,没有中断,正常结束程序)。我挨个注释,发现其他都没问题,注释掉音乐播放代码后程序运行正常,将音乐播放代码写到按钮里,点击按钮程序结束。

Testcpp的音效相关的测试例可以正常播放吗?

咦!我去试试。

我试了,TEST里面的CocosDenshion能够正常播放音乐和音效.这我就纳闷了...

我有遇到过这个问题。应该是BUG。网上也能找到解决办法。仅仅是windows上才有的BUG。移植到手机上是没有问题的。

求个链接兄弟,我找遍了百度论坛都没有类同的问题。

TEST没有问题,为什么自己创建的HELLOWORLD就不能播放音乐,太奇怪了。

什么格式的音乐文件,换用testcpp的音乐呢?

.mp3 .wav都有,试了test里面的background.mp3,还是一样。

我之前有找到过,现在也是找不到了。不过那个帖子的解决方法只是解决windows音乐播放的问题。不支持安卓和IOS。改了以后只能在windows上好使。就跳过去了。

新建个项目,按照http://www.cocos2d-x.org/wiki/Chapter_6_-_How_to_Play_Music_and_Sound_Effect?project_id=cocos2d-x再操作一次。

版主大大,我在TEST里面将播放代码
SimpleAudioEngine::getInstance()->playBackgroundMusic(MUSIC_FILE, true);
改为

    SimpleAudioEngine::getInstance()->playBackgroundMusic("background.mp3", true);

运行test点击PLAY按钮也会出现结束程序的现象。难道每播放一个音乐都要定义MUSIC_FILE宏吗?
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
#define MUSIC_FILE “music.mid”
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
#define MUSIC_FILE “background.wav”
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX )
#define MUSIC_FILE “background.ogg”
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
#define MUSIC_FILE “background.caf”
#else
#define MUSIC_FILE “background.mp3”
#endif // CC_PLATFOR_WIN32
为什么它定义MUSIC_FILE写了那么多,导入了那么多不同格式的background,是否跟这个有关呢?求解释。

不是,这个只是演示了不同平台使用的音乐格式。

http://www.cocos2d-x.org/wiki/Audio_formats_supported_by_CocosDenshion_on_different_platforms

那么为什么定义了宏能够播放,不定义就不能播放呢?

没关系,这里的宏主要是定义格式,你格式对了就ok。