- void LoadVoice(TCHAR *lpName)
- {
- TCHAR appPath[MAX_PATH];
- // 获取exe文件夹路径
- GetAppPath(appPath,MAX_PATH);
- // 获取插件文件夹路径
- TCHAR pluginsPath[MAX_PATH];
- wsprintf(pluginsPath,"%s//Voices",appPath);
- //
- TCHAR pluginsPattern[MAX_PATH];
- // 文件夹下所有的mp3文件
- wsprintf(pluginsPattern,"%s//*.mp3",pluginsPath);
- // 存放文件信息
- WIN32_FIND_DATA fileinfo;
- // 找到第一个文件
- HANDLE hFile=FindFirstFile(pluginsPattern,&fileinfo);
- DWORD errorcode = 0;
- // 定义一个flag为找到的标志
- BOOL ifCanFind = FALSE;
- while(hFile!=INVALID_HANDLE_VALUE && errorcode!=ERROR_NO_MORE_FILES)
- {
- TCHAR fileName[MAX_PATH*2];
- TCHAR lpVoiceName[MAX_PATH];
- // 初始化lpVoiceName
- ZeroMemory(lpVoiceName, sizeof(lpVoiceName));
- TCHAR *pLastSlash = strrchr(fileinfo.cFileName, '.');
- // printf(pLastSlash);
- // 得到文件的名称如One.mp3得到One
- TCHAR *lp = fileinfo.cFileName;
- // 从fileinfo.cFileName中复制n个字符到lpVoiceName中
- strncpy(lpVoiceName, fileinfo.cFileName, pLastSlash - fileinfo.cFileName);
- // fileinfo.cFileName 的全全文件路径
- wsprintf(fileName,"%s//%s",pluginsPath,fileinfo.cFileName);
- // 判断是歌声名称是否与声音文件名匹配,如果匹配进行操作
- if (0 == strcmp(lpName, lpVoiceName))
- {
- // AfxMessageBox(lpVoiceName);
- // PlayVoice(fileName);
- // Sleep(200);
- // StopVoice(fileName);
- printf("Find out the %s ok/n", lpName);
- ifCanFind = TRUE;
- break;
- }
- // 否则就查找下一个文件
- else
- {
- FindNextFile(hFile,&fileinfo);
- errorcode=GetLastError();
- }
- }
- if (FALSE == ifCanFind)
- printf("Can't find the same mp3!/n");
- FindClose(hFile);
- }
本文介绍了一个用于在指定文件夹内查找并加载特定名称的MP3文件的C++函数。该函数通过遍历指定路径下的所有MP3文件来实现目标文件的定位。

493

被折叠的 条评论
为什么被折叠?



