|
楼主 |
发表于 2023-6-24 12:35:56
|
显示全部楼层
本帖最后由 hpdell 于 2023-6-24 15:17 编辑
在大神的指点下貌似终于搞定了
感谢感谢大神了啊
// ----------------
这个方法是吧 24bit 单声道 转成 16bit 双声道
readlen=(size/4)*3;
f_read(_file,_ptrtemp,readlen,(UINT*)&bread);
p = _ptrtemp;
bread=(bread/3)*4;
for(i=0;i<bread;)
{
buf = p[1];
buf[i+1] = p[2];
buf[i+2] = p[1];
buf[i+3] = p[2];
i+=4;
p+=3;
}
// ---------------------------
这个方法是吧 24bit 双声道 转成 16bit 双声道, 大神提供的
NumBytesReq=(_usSize / 2) * 3;
NumBytesRead = fread((void *)_ptrtemp, 1, NumBytesReq, _pFile);
p = _ptrtemp;
for(i = 0; i < _usSize; i += 2, p += 3)
{
_ptr = p[1];
_ptr[i+1] = p[2];
}
/* 实际需读取的字节数 */
NumBytesRead = (NumBytesRead / 3) * 2;
|
|