mpg123 1.13.1 调用测试

    技术2022-06-27  104

    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 ,win7通过),双缓冲,消息处理。

    ---------------------------------

    mingw下编译:

    gcc -c  mp3_play.c -Iinclude -Llib -lmpg123 -lwinmm

    windres mp3_resource.rc resource.o

    gcc mp3_play.o resource.o -Llib -lmpg123 -lwinmm -Wl,-subsystem,windows -o mp3_play.exe

    ./mp3.play.exe

     

    ---------------------------------

    得到了win32窗体的集成版mp3播放程序(对于调用动态库的更容易,直接vc下编译即可)。

     

     

     上面的可执行文件下载mp3_player 

     

     

     

     

     

     

     

     

     

     

     

     

     


    最新回复(0)