在C语言中实现添加背景音乐,可以通过以下几种方法:
方法一:使用Windows API函数 `PlaySound`
包含头文件
```c
include pragma comment(lib, "winmm.lib") ``` ```c void playMusic() { PlaySound("Sounds\\背景音乐.wav", NULL, SND_FILENAME | SND_ASYNC | SND_LOOP); } ``` ```c int main() { playMusic(); system("pause"); return 0; } ``` 方法二:使用 `mciSendString` 函数 ```c include pragma comment(lib, "winmm.lib") ``` ```c void playMusic() { mciSendString("open music.mp3 alias mymusic", NULL, 0, NULL); mciSendString("play mymusic", NULL, 0, NULL); _getch(); mciSendString("stop mymusic", NULL, 0, NULL); mciSendString("close mymusic", NULL, 0, NULL); } ``` ```c int main() { initgraph(640, 480); // 打开图形窗口 playMusic(); system("pause"); closegraph(); // 关闭图形窗口 return 0; } ``` 方法三:将音乐文件作为资源加入程序 在Visual Studio中,将音乐文件(如`.wav`或`.mp3`)加入项目资源文件(`.rc`)。 ```c include include pragma comment(lib, "winmm.lib") define MUSIC_FILE "music.wav" void playMusic() { HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(ID_MUSIC), RT_RCDATA); HGLOBAL hResData = LoadResource(NULL, hRes); DWORD dataSize = SizeofResource(NULL, hRes); void* pData = LockResource(hResData); if (pData) { HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, dataSize); memcpy(hMem, pData, dataSize); HSTREAM hStream = CreateStreamOnResource(hMem, TRUE); if (hStream) { SND_STREAM_INFO streamInfo = {0}; streamInfo.cbSize = sizeof(streamInfo); streamInfo.dwFlags = SND_STREAM_INFO_CURRENT_POSITION; if ( SND_StreamGetInfo(hStream, &streamInfo) == S_OK ) { SND_PlaySound(NULL, hStream, SND_FILENAME | SND_ASYNC | SND_LOOP); } CloseHandle(hStream); GlobalFree(hMem); } } } int main() { playMusic(); system("pause"); return 0; } ``` 注意事项 文件路径:确保音乐文件路径正确,如果使用相对路径,请确保文件与可执行文件在同一目录下。 库文件:需要链接`winmm.lib`库文件,以便使用`PlaySound`和`mciSendString`函数。 错误处理:在实际应用中,应添加适当的错误处理代码,以确保程序的健壮性。 通过以上方法,你可以在C语言中实现添加背景音乐的功能。选择哪种方法取决于你的具体需求和平台支持情况。播放音乐
在主函数中调用
包含头文件
播放音乐
在主函数中调用
将音乐文件加入项目资源
在代码中加载并播放