(这是最近提出的问题的更清晰版本)
我正在接管一些代码来解决一些问题,其中一个让我感到困惑。
应用程序需要监控输入电平并将其显示出来,以便用户在需要时进行调整。当前代码与大多数设备完美配合。计量模式已启用,这两条线由计时器例程调用并工作 - 除了一个设备:
AudioUnitGetParameter(mMixerUnit, k3DMixerParam_PreAveragePower, kAudioUnitScope_Input, 0, &levels[0]);
AudioUnitGetParameter(mMixerUnit, k3DMixerParam_PrePeakHoldLevel, kAudioUnitScope_Input, 0, &peaks[0]);
当所选输入设备是TASCAM US-144MKII时,级别和峰值始终为-120。Tascam 单元有一些不同之处,例如,它列出了 4 个通道并且安全偏移量为 0。但是,我看不出其中任何一个会如何导致这个特殊问题。现在我的猜测是,Tascam 的 USBAudio 驱动程序中的某些内容与预期的不同。
卷确实使用 Audacity 显示,但如果我正确阅读代码,则 Audacity 正在使用已弃用的函数。是否可以运行单独的 AudioQueue,而不是捕获数据,而只是为了获取输入电平?
我很感激你的回答!