objective-c – 如何在内置输入(OSX Core Audio / Audio Unit)上设置输入电平(增益)?

我有一个OSX应用程序,使用音频单元记录音频数据.音频单元的输入可以设置为带输入的任何可用信号源,包括内置输入.问题是,我从内置输入获得的音频经常被剪裁,而在诸如Audacity(甚至是Quicktime)之类的程序中,我可以调低输入电平而不会剪辑.

当然,将样本帧乘以一小部分是行不通的,因为我的体积较小,但样本本身在输入时仍然被剪裁.

如何设置内置输入的输入电平或增益以避免剪切问题?

解决方法

这对我来说可以在我的MacBook Pro(2011型号)上设置输入音量.这有点时髦,我不得不尝试设置主通道音量,然后是每个独立的立体声通道音量,直到我发现一个有效.查看我的代码中的注释,我怀疑最好的方法来判断你的代码是否正常工作是找到一个有效的get / set-property组合,然后做一些像get / set(别的东西)/ get来验证你的代码setter正在工作.

哦,我当然会指出,我不会依赖地址中的值来保持getProperty调用的相同,就像我在这里做的那样.它似乎工作但是当你通过引用传递一个函数时依赖于struct值是绝对不好的做法.这当然是示例代码所以请原谅我的懒惰.

相关文章

对象的传值与返回说起函数,就不免要谈谈函数的参数和返回值...
从实现装饰者模式中思考C++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...