ASIO SDK 如何处理音频缓冲区

问题描述 投票:0回答:1

所以我正在开发一些音频处理软件,我对一些 ASIO 音频处理有点困惑。从我读到的内容来看,似乎当进行缓冲区切换回调时,我需要将“输入”处理为“输出”。但是如果我有不同数量的输入和输出通道怎么办?我猜如果我的输入和输出格式不匹配,我需要进行格式转换?

audio audio-streaming asio steinberg-asio
1个回答
0
投票

您要做的就是访问 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
© www.soinside.com 2019 - 2024. All rights reserved.