XAudio2の構造体のオーディオ バッファーへのポインターは、XAUDIO_BUFFER
として定義され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
ですか? ベクトルの最初のバイトへのポインターを与えるにはどうすればよいですか? 文字の単純な配列のような別のコンテナーを使用する必要がありますか?