在C语言中添加音乐,你可以选择使用Windows API函数、PlaySound函数、外部音频库(如SDL和SDL_mixer)或者直接使用Beep函数。下面我将分别介绍这些方法。
使用Windows API函数
你可以使用`mciSendString`函数来播放音乐文件,支持多种格式如MP3、WMA、WAV、MID等。以下是一个简单的示例代码:
```c
include include pragma comment(lib, "winmm.lib") int main() { initgraph(640, 480); // 初始化图形窗口 // 打开音乐文件 mciSendString("open music.mp3 alias mymusic", NULL, 0, NULL); // 显示提示信息 outtextxy(0, 0, "按任意键开始播放"); _getch(); // 播放音乐 mciSendString("play mymusic", NULL, 0, NULL); // 显示提示信息 outtextxy(0, 0, "按任意键停止播放"); _getch(); // 停止播放并关闭音乐文件 mciSendString("stop mymusic", NULL, 0, NULL); mciSendString("close mymusic", NULL, 0, NULL); return 0; } ``` 使用PlaySound函数 `PlaySound`函数可以在不加载到内存的情况下直接播放声音文件。以下是一个示例: ```c include include include pragma comment(lib, "winmm.lib") int main() { // 播放声音文件 if (!PlaySoundA("c:\\sound\\music.wav", NULL, SND_ASYNC | SND_NODEFAULT)) { // 播放失败 } return 0; } ``` 使用外部音频库(如SDL和SDL_mixer) 使用外部库可以让你有更高级的音频处理能力。以下是一个使用SDL_mixer库播放音乐的简单示例: 1. 安装SDL和SDL_mixer库。 2. 包含必要的头文件。 3. 初始化SDL和SDL_mixer库。 4. 加载音频文件并创建音频流。 5. 播放音频流。 6. 关闭音频流和释放资源。 示例代码: ```c include include int main(int argc, char *argv[]) { if (SDL_Init(SDL_INIT_AUDIO) < 0) { printf("SDL could not initialize! SDL_Error: %s", SDL_GetError()); return 1; } if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048) == -1) { printf("SDL_mixer could not initialize! SDL_mixer Error: %s", Mix_GetError()); return 1; } // 加载音乐文件 Mix_Music* music = Mix_LoadMUS("music.mp3"); if (!music) { printf("Failed to load music! SDL_mixer Error: %s", Mix_GetError()); return 1; } // 播放音乐 Mix_PlayMusic(music, -1); // -1表示循环播放 // 等待音乐播放完毕 while (Mix_PlayingMusic()) { SDL_Delay(100); } // 停止音乐 Mix_HaltMusic(); // 释放音乐资源 Mix_FreeMusic(music); // 关闭SDL音频子系统 Mix_CloseAudio(); SDL_Quit(); return 0; } ``` 使用Beep函数 `Beep`函数可以播放简单的音符。以下是一个示例: