(这是最近提出的问题的更清晰版本)
我正在接管一些代码来解决一些问题,其中一个让我感到困惑。
应用程序需要监视输入级别并显示它,以便用户可以根据需要进行调整。当前代码与大多数设备完美配合。计量模式已启用,这两行由计时器例程调用并且工作 - 除了一个设备:
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,而不是捕获数据,只是为了让我可以获取输入电平?
感谢您的回答!
答案 0 :(得分:0)
发现它!
当选择Tascam单位作为输入时,代码中的输入回调永远不会被调用。确切的原因还没有定义,但实质上它不仅仅是获得音量水平,当选择Tascam单位作为输入设备时,没有任何工作。