c++ - 指向 vector 第一个字节的指针 <float>

标签 c++ xaudio2

指向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 文件。由于 vector 在内存中按顺序组织,我只需执行 pAudioData = &vec[0] 即可。如果我想将 .csv 的格式更改为 float 怎么办?如何给出指向 vector 中第一个字节的指针?我应该使用另一个容器,例如简单的字符数组吗?

最佳答案

How do I give a pointer to the first byte in the vector?

完全相同的方式,但我不确定它是否会达到您的预期。阅读对您的问题的评论。

关于c++ - 指向 vector 第一个字节的指针 <float>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766490/

相关文章:

c# - 如何在 UWP 应用程序上播放原始 pcm 音频字节?

c++ - 实现 O(n) 算法来确定字符串是否具有所有唯一字符?

c++ - 使用 boost::iterator_facade<> 为迭代器返回 ref 但为 const_iterator 返回 const_ref?

c++ - 理解SDL帧动画

c++ - XAudio2 和可变比特率音频

audio - Windows Phone xaudio2

c++ - 是否可以重用构造函数?

c++ - 如何让这个音频延迟工作?

c++ - 流式传输和循环 MS ADPCM (WAVE_FORMAT_ADPCM)