我正在使用Linux。
我有一个函数叫做:
PlayBackgroundIntroMusic((char *)"IntroMusic");
功能是:
无效的声音管理器:: PlayBackgroundIntroMusic(char * musicFile) { // 为每个平台连接扩展 strcat(音乐文件,音频扩展); CCLOG("musicFile: %c" musicFile); SimpleAudioEngine::sharedEngine()->playBackgroundMusic(std::string(CCFileUtils::fullPathFromRelativePath(musicFile)).c_str(), false); }
但是我无法在线访问内存:
strcat(音乐文件,音频扩展);
声明了 audioExtension:
#包括 使用标准::字符串; #包括 使用 std::cout;使用 std::cerr;使用 std::endl; /** * 为每个平台声明声音扩展 * 安卓 = ogg * iOS = 咖啡馆 * WIN32 = mp3 */ #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) 静态 const char * audioExtension = ".wav"; #elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) 静态 const char * audioExtension = ".caf"; #elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) 静态 const char * audioExtension = ".ogg"; #万一
所以,我希望有:
iOS 上的 IntroMusic.caf Android 上的 IntroMusic.ogg
发生了什么事?
注意:我试图:
char * musicFileWithExtension = strcat (musicFile,audioExtension);
但它无论如何都没有用。
musicFile 不是一个常数。如果文件名太长,我不想声明 tempchar[80] 以避免溢出,例如示例 cc 参考
提前致谢。