SDL_mixer的用法很简单,它可以帮助你在你使用了SDL的项目中播放音频文件,包括
项目网址是:http://www.libsdl.org/projects/SDL_mixer/
这里有SDL_mixer的API说明,很详细,而且用法很简单,看了代码你就知道了!
http://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer_frame.html
编译选项:
g++  -lmingw32 -lSDLmain SDL_mixer.dll -lSDL main.cpp
随手写的一坨代码:
#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>
int main(int argc, char **argv)
{
	/* 初始化SDL */
	SDL_Init(SDL_INIT_AUDIO);
	/* 在使用SDL_mixer前进行初始化 */
	int ret = Mix_Init(MIX_INIT_MP3);
	if(ret & MIX_INIT_MP3 != MIX_INIT_MP3){
		perror("failed to initialize mp3 module.");
		exit(1);
	}
	
	/* 设置音频格式,使用44100的cd格式即可 */
	if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1) {
		fprintf(stderr, "Mix_OpenAudio: %s\n", Mix_GetError());
		exit(2);
	}
	/* 加载一个wav音频文件 */
	Mix_Chunk* wav = Mix_LoadWAV("./heal.wav");
	if(wav == NULL){
		fprintf(stderr, "Mix_LoadWAV: %s\n", Mix_GetError());
		exit(1);
	}
	/* 播放音频文件,第三个参数是循环次数这里设置为0表示播放一次,1表示播放两次,-1表示无穷次 
	 * 第一个参数是音频轨道,轨道数目可以通过Mix_AllocateChannels函数来改变,-1表示随机选择一个空闲的轨道 */
	Mix_PlayChannel(-1, wav, 0);
	
	/* 加载一首MP3吧! */
	Mix_Music* mp3 = Mix_LoadMUS("./music.mp3");
	if(mp3 == NULL){
		fprintf(stderr, "Mix_LoadMUS: %s\n", Mix_GetError());
		exit(1);
	}
	/* 播放一次 */
	Mix_PlayMusic(mp3, 1);
	/* 等待播放结束 */
	while(Mix_PlayingMusic())
		_sleep(1000);
		
	/* 资源回收处理 */
	Mix_CloseAudio();
	Mix_Quit();	
	return 0;
}
					
先收藏一下,等着用的时候用。
发觉大部分免费的音频库都没有WMA支持。。。
是因为wma不是免费的吧