使用Tascam US-144MKII读取CoreAudio输入级别

时间:2013-02-24 01:04:21

标签: macos audio core-audio volume

(这是最近提出的问题的更清晰版本)

我正在接管一些代码来解决一些问题,其中一个让我感到困惑。

应用程序需要监视输入级别并显示它,以便用户可以根据需要进行调整。当前代码与大多数设备完美配合。计量模式已启用,这两行由计时器例程调用并且工作 - 除了一个设备:

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,而不是捕获数据,只是为了让我可以获取输入电平?

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

发现它!

当选择Tascam单位作为输入时,代码中的输入回调永远不会被调用。确切的原因还没有定义,但实质上它不仅仅是获得音量水平,当选择Tascam单位作为输入设备时,没有任何工作。