因此,我正在开发一些音频处理软件,并对某些ASIO音频处理感到困惑。从我正在阅读的内容来看,似乎在进行缓冲区切换回调时,我需要将“输入”处理为“输出”。但是,如果我有不同数量的输入和输出通道怎么办?我猜如果我的输入和输出格式不匹配,我需要进行格式转换吗?
最佳答案
您要做的就是访问asioDriverInfo.inputsChannels和asioDriverInfo.inputBuffers。我使用此代码段找出了我的设备输入/输出枚举。希望对您有所帮助。
string cad;
if (ASIOStart() == ASE_OK)
{
for (int i = 0; i < asioDriverInfo.inputChannels + asioDriverInfo.outputChannels; i++)
{
cad = asioDriverInfo.channelInfos[i].isInput? "input" : "output ";
cout<<"Chanel "<<i<<" : "<<asioDriverInfo.channelInfos[i].name<<" "<<cad<<endl;
}
for (int i = 0; i < asioDriverInfo.inputBuffers + asioDriverInfo.outputBuffers; i++)
{
cad = asioDriverInfo.bufferInfos[i].isInput? "input" : "output ";
cout<<"Buffer "<<i<<asioDriverInfo.bufferInfos[i].buffers<<" : " << cad <<" chanel "<<asioDriverInfo.bufferInfos[i].channelNum<<endl;
}
...and rest of stuff
关于audio - ASIO SDK如何处理音频缓冲区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29331275/