MP3解码播放,小问题,但我不懂

chentian08 发布于 2012/07/01 09:51
阅读 566
收藏 0
我就是想知道是怎么读取的,因为一个几M的 MP3文件,挺大的,不知怎么读取比较好,就按你说的,一个采样率为128kbps的MP3文件,程序先分配1s的内存(128*2*1152=294912字节),那怎么安排解码才好,我就想到搞个循环(读取--解码--放到音频流播放,代码大概就是这样:
LPBYTE buf;
 int len;
 if(GetNextFrame(&buf, &len)){//读取下一帧,这是未解码的数据
  IN_OUT x = {0, 0}; 
  x = audio_decode(//解码
   &m_sMPEG,
   (unsigned char *)buf,
   (short *)m_tempbuffer);//m_tempbuffer:用来保存解码后的数据
  BASS_StreamPutData(m_mp3Stream,(void*)m_tempbuffer,x.out_bytes);//将解码后的数据添加到音频输出流),直到读完为止,结果这个过程占用CPU很大,内存也不断的变大;
加载中
返回顶部
顶部