mingw +msys
./configure
make
make install
----------------------------------
得到 libmpg123.a
---------------------------------
可看行编译/doc/examples中的代码
特别是mpg123_to_wav.c
关键函数:
mpg123_read( mh, buffer, buffer_size, &done );用于将mp3解码出PCM数据
PCM数据大小为buffer_size(建议大小),实际送入buffer中的数据大小为done字节。
通常buffer_size=done,一般只有解码到尾部时,不够了,就有buffer_size>done。
每调用一次,解码下一段,直到解码完毕,小解码片段为4608字节在44100下约播放26ms 所以通过设置的更大一点,比如:buffer_size=buffer_size*114=4608*114 约播放3s。
---------------------------------
sndfile仅仅用于简单的WAV格式封装(数据为上面解码出的PCM数据,格式头通过mpg123_getformat等已知)
所以可自己实现wav的封装,而不用sndfile。
---------------------------------
对mpg123_to_wav.c简单的扩展应用:
一个完整的mp3解码->PCM数据->低级wavOut*** 播放测试(XP ,