我正在尝试将C ++语音通信器作为学校项目来编写。到目前为止,我已经写了两节课-一课录制声音(记录器),一课播放声音(播放器)。此时,记录器将写入文件,稍后将其传递给播放器。但是现在我想尝试使其实时运行。在Recorder内有一个循环,可从声卡重复读取480字节的音频。现在,每次音频数据准备就绪时,我都希望将其发送到Player类进行播放。 Player只是将数据添加到声卡缓冲区,因此就像调用playerObject.play(char * buffer,int bufferSize)一样简单。我不想把一堂课放在另一堂课里。如何在它们之间传递数据?还是在Recorder内调用Player的功能? (稍后我将编写Encoder和Decoder,并且需要在所有这些类之间传递数据)
class Player {
void play(char* audioData, int audioDataSize)
{
sendAudioToSoundCard(audioData, audioDataSize)
}
};
class Recorder {
void record()
{
const int dataSize = 480;
char buffer[dataSize]
while (1)
{
readAudioFromSoundCard(buffer, dataSize);
sendAudioToPlay(buffer, dataSize); // how do I make this call play from Player?
}
}
};