分类: WINDOWS
2008-05-25 20:27:58
chinaunix网友2009-08-14 22:20:16
估计写成这样更容易理解: while (err==MPG123_OK){ err = mpg123_decode(mh, NULL, 0, outbuf[which], 1638400, &done); playAudio(outbuf[which], done); } 写成NULL, 0的目的是先把decoder的数据全部解码出来,然后再往里面喂数据,避免占用太多的内存。假如你只是解码本地文件的话,直接使用mpg123_open mpg123_open_fd/mpg123_read比较方便些。 当然了, 你也可以使用: mpg123_replace_reader/mpg123_replace_buffer/mpg123_decode_frame来处理网络的数据。 MPG123_NEED_MORE: 表示需要向decoder喂入新的数据才能解码出更多的数据。
chinaunix网友2009-08-14 17:21:18
请教下,关于以下代码:帮忙注释下下面代码; 判断MPG123_NEED_MORE 目的;为什么mpg123_decode()的第2,3 给参数为NULL,0。 while (err!=MPG123_NEED_MORE && err!=MPG123_ERR){ err = mpg123_decode(mh, NULL, 0, outbuf[which], 1638400, &done); playAudio(outbuf[which], done); }