0

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ですか? ベクトルの最初のバイトへのポインターを与えるにはどうすればよいですか? 文字の単純な配列のような別のコンテナーを使用する必要がありますか?

4

1 に答える 1

1

ベクトルの最初のバイトへのポインタを指定するにはどうすればよいですか?

まったく同じ方法ですが、期待どおりに機能するかどうかはわかりません。あなたの質問へのコメントを読んでください。

于 2011-07-20T18:27:03.793 に答える