设置音频单元的音量 (kAudioUnitSubType_RemoteIO)

Posted

技术标签:

【中文标题】设置音频单元的音量 (kAudioUnitSubType_RemoteIO)【英文标题】:Setting volume on Audio Unit (kAudioUnitSubType_RemoteIO) 【发布时间】:2010-06-22 15:37:18 【问题描述】:

如何专门在 kAudioUnitSubType_RemoteIO 上设置音频单元的音量?

我看到了一些关于 kAudioUnitSubType_MultiChannelMixer 的东西

    status = AudioUnitSetParameter(mixerUnit, kMultiChannelMixerParam_Volume, kAudioUnitScope_Output, AU_OUTPUT_BUS, volume, 0);

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

来自 Chris Adamson 的博客An iPhone Core Audio brain dump

"RemoteIO 没有增益或音量属性。混音器单元在所有输入总线及其输出总线 (0) 上都有音量属性。因此,设置混音器的输出音量属性可能是事实上的音量控制,如果它是 RemoteIO 之前的最后一件事。而且它比手动将所有样本乘以体积因子更具吸引力。"

【讨论】:

【参考方案2】:

如果您的目标是桌面,这将对您有所帮助http://developer.apple.com/audio/audiounits.html 与 iphone 目标

结果 = AudioUnitSetParameter ( yourUnit, kHALOutputParam_Volume, kAudioUnitScope_Output, 总线号, 体积, 0);这将设置设备音量

【讨论】:

在远程IO单元ios上设置kHALOutputParam_Volume没有任何效果。您需要改用 pion 的答案。在混音器的输出上设置 kMultiChannelMixerParam_Volume。【参考方案3】:

你得到的那段代码将设置主输出音量,是的。而不是AU_OUTPUT_BUS(未定义的常量?),您可以只使用 0 作为“第 0 个输出总线”(kAudioUnitSubType_MultiChannelMixer 只有 1 个输出总线)。

如果您想设置一个特定输入总线的音量,您也可以这样做,

AudioUnitSetParameter( mixerUnit,
  kMultiChannelMixerParam_Volume, kAudioUnitScope_Input, busId, volume, 0 ) ;

【讨论】:

我的问题是如果当前库仅使用一个单元且没有图形,如何构建图形。你只是建议问题中提到的不正确

以上是关于设置音频单元的音量 (kAudioUnitSubType_RemoteIO)的主要内容,如果未能解决你的问题,请参考以下文章

音频单元录制:增加缓冲区的音量

如何在 iOS 中调整音频平衡

反应音频无法设置未定义的属性“音量”

在非默认音频设备上设置 HID 音量调高/调低

树莓派设置音频输出音量

AVAudioPlayer 本地音频设置番外篇:后台定时修改音频音量NSTimer