u32 wav_buffill(u8 *buf,u16 size,u8 bits){ u16 readlen=0; u32 bread; u16 i; u8 *p; if(bits==24) { readlen=(size/4)*3; f_read(audiodev.file,audiodev.tbuf,readlen,(UINT*)&bread); p=audiodev.tbuf; for(i=0;i<size;) { buf[i++]=p[1]; buf=p[2]; i+=2; buf[i++]=p[0]; p+=3; } bread=(bread*4)/3; //ìî3äoóμÄ′óD¡. } else { f_read(audiodev.file,buf,size,(UINT*)&bread);//16bitòôÆμ,Ö±½ó¶áè¡êy¾Y if(bread<size)//2»1»êy¾YáË,213ä0 { for(i=bread;i<size-bread;i++) buf=0; } } return bread;}
上面这个函数中,readlen=(size/4)*3; 这一句,为什莫要取填充数据量大小的3/4大小?如果这样算的话,加入想填充12字节的数据,那就要预先使设定值+9变为21,这样填充值才是12,是这样么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
25位WAV文件,才是这样。
一周热门 更多>