基于SDL2_mixer创建C++音频播放器代码
时间: 2024-10-14 15:14:43 浏览: 33
基于SDL2_mixer库创建C++音频播放器,你需要包含必要的头文件并初始化库,然后设置音频设备、加载音频文件并开始播放。以下是一个简单的示例:
```cpp
#include <SDL2/SDL.h>
#include <SDL2_mixer/Mix.h>
// 初始化 SDL 和 Mix
bool init() {
if (Mix_Init(MIX_INIT_OGG) != MIX_INIT_OK) {
printf("Failed to initialize SDL_mixer: %s\n", Mix_GetError());
return false;
}
Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2, 4096); // 音频配置
if (Mix_LoadWAV("path_to_your_audio_file.wav") == NULL) {
printf("Failed to load audio file: %s\n", Mix_GetError());
Mix_Quit();
return false;
}
return true;
}
// 播放音频
void playSound(const char* soundName) {
Mix_Chunk* chunk = Mix_LoadWAV(soundName);
if (chunk != NULL) {
Mix_PlayChannel(-1, chunk, 0); // -1 表示默认通道
Mix_FreeChunk(chunk); // 释放音频数据
} else {
printf("Failed to play sound: %s\n", Mix_GetError());
}
}
int main(int argc, char* args[]) {
if (!init()) {
return 1;
}
// 示例播放音频
playSound("sound.wav");
// 等待音频播放完成
while (Mix_PlayingMusic() || Mix_Playing(-1)) {
SDL_Delay(100);
}
Mix_Quit(); // 清理资源
return 0;
}
```
在这个例子中,你需要替换 "path_to_your_audio_file.wav" 为你要播放的实际音频文件路径。记得将音频文件放在项目目录下,或者提供完整的绝对路径。
阅读全文