我正在尝试使用portaudio库播放简单的wave文件。
我认为它应该相当简单,所以我写的就像我可以做回调一样简单。 我的波是每个样本16位和2个通道所以我假设粘贴整数到输出流将是正常的(每个整数的样本)。
int *out = (int*)outputBuffer;
for(int i=0; i<framesPerBuffer; i+=4 )
*out++ = *(reinterpret_cast<int*>(&data->chunk[i]));
(我已将文件中的数据存储为字符)
音乐播放时几乎没有音乐,但是加入高音调后会发出声音。
我试图留下重新解释的演员的想法并且确实作为字符移动。无论我写入输出缓冲区,它总是像以前一样。我没有想法可以解决这个问题。
outputParameters.channelCount = 2;
outputParameters.sampleFormat = paInt16 ;
// outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultLowOutputLatency;
outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultHighOutputLatency;
outputParameters.hostApiSpecificStreamInfo = NULL;
这些是我的输出参数。