指向XAUDIO_BUFFER
XAudio2 中结构的音频缓冲区的指针定义为BYTE *pAudioData
. 当我使用 16 位整数 PCM 时,我的程序如下所示:
void buildWaveBuffer(std::vector<unsigned char> &vec)
{
std::string lineString;
int lineInt;
unsigned char lowByte, highByte;
std::ifstream myfile("sineInt16");
if (myfile.is_open())
{
while(myfile.good())
{
std::getline(myfile,lineString,',');
lineInt = atoi(lineString.c_str());
highByte = (lineInt >> 8) & 0x00FF;
lowByte = lineInt & 0x00FF;
vec.push_back(lowByte);
vec.push_back(highByte);
}
myfile.close();
}
}
"sineInt16"
是一个 .csv 文件。由于向量在内存中是按顺序组织的,所以我只需这样做pAudioData = &vec[0]
,它就会起作用。如果我想将 .csv 的格式更改为float
怎么办?如何给向量中第一个字节的指针?我应该使用另一个容器,比如一个简单的字符数组吗?