音频播放库采用下面的接口
uSzAxe-KkT本文来自:V电G玩S天K空Ypsp音频播放的库,mp3, aac,atrac3,atrac3plus,pcmwav,ogg,midi,mod采用下面的接口,实现相应的操作,这样各个解码器都能够协同工作.3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
mp3,aac,atrac3,atrac3plusc采用硬解
这个项目主要由cooleyes完成psp部分,由newcreat完成windows部分.供给nge以及其他应用程序使用.目前是一个初始版本.
uSzAxe-KkT本文来自:V电G玩S天K空Y项目计划详细本版找。
uSzAxe-KkT本文来自:V电G玩S天K空YuSzAxe-KkT本文来自:V电G玩S天K空Y下面是nge使用libcoolaudio播放mp3.
uSzAxe-KkT本文来自:V电G玩S天K空Y下载libcoolaudio v0.1按照里面的安装说明安装.如果不会安装请留言.
uSzAxe-KkT本文来自:V电G玩S天K空Yhttp://code.google.com/p/topoc/downloads/list
uSzAxe-KkT本文来自:V电G玩S天K空Ylibnge 使用libcoolaudio,以下假设都是安装的topoc整合包,没安装整合包的请自己放在相应目录下。
uSzAxe-KkT本文来自:V电G玩S天K空Ypsp版3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
1 拷贝libSDLmain.a到pspdev\pspdev\psp\lib覆盖原来的libSDLmain.a。(主要是启用核心态)3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
2 设置demo makefile指定include和lib路径。编译即可。3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
如果不会设置makefile的请按下面傻瓜安装:3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
3 将include和lib下的文件加入到pspdev\libnge_psp\include 和pspdev\libnge_psp\lib。(或者你自己写makefile指定目录)3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
4 将demo/lesson5拷贝到pspdev\libnge_psp\demo,和那些lesson放一起。然后make即可。
win版:3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
1 打开demo工程3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
2 加入libcoolaudio的include和lib。3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
3 拷贝SDL_mixer.dll到system32下,这个是支持mp3的dll。
3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
运行请放test.mp3到demo\lesson5(win)和demo\lesson5\__SCE__lesson5(psp)下
下面简述一下接口:
uSzAxe-KkT本文来自:V电G玩S天K空Y各个函数说明:3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
| 函数名 | 功能 | 备注 |
| int load(const char* filename) | 加载文件,并做相应的初始化工作 | |
| int play(void) | 播放声音 | |
| void pause(void) | 暂停声音.但不释放资源,可以用resume再次从暂停地方播放. | |
| stop | 停止声音,并释放当前加载资源.但是不是所有资源. | |
| resume | 再次从暂停地方播放. | |
| seek | 从流的某一位置播放 | 可选 |
| time | 音频的时间信息 | 可选 |
| eos | 播放是否结束(end of stream),结束返回1 | |
| volume | 音量设置0-128 |
uSzAxe-KkT本文来自:V电G玩S天K空Y
下面是基本调用方式:
uSzAxe-KkT本文来自:V电G玩S天K空Yint main(int argc, char *argv[])3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
{3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
//init
CoolAudioDefaultInit();
uSzAxe-KkT本文来自:V电G玩S天K空YMP3PlayInit(&ops);3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
//load and play3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
ops.load("test1.mp3");3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
ops.play();3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
printf("playing....\n");3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
do{3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
Menu();3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
}while( ops.eos()!=1);3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
//another3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
ops.load("test2.mp3");3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
ops.play();3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
printf("playing....\n");3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
do{3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
Menu();3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
}while( ops.eos()!=1);3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
//clean up3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
MP3PlayFini();3<;.lT3c3]:n~E4tg7:me3up`asCW'p!DU?C6>m>_VC15kWicS->jaL^q4[5;t<G`1本文来自:V电G玩S天K空Y
return 0;
}
uSzAxe-KkT本文来自:V电G玩S天K空Y测试时请将test.mp3放到相应目录.
uSzAxe-KkT本文来自:V电G玩S天K空Y可以发现mp3采用硬解码对fps影响极小,在播放mp3的情况下旋转缩放512*512*32的图片nge能达到200+的fps,这对做游戏的人是一大好消息.(windows版由于不是硬解码所以fps会下降不少)
uSzAxe-KkT本文来自:V电G玩S天K空Y


