OSX CoreAudio麦克风输入静音与将音量设置为0.0f

问题描述 投票:3回答:1

我正在尝试使Logitech C920网络摄像头(OSX 10.8.5)上的麦克风静音,但是我尝试的两种实现都无法100%正常工作。如果有使用Apple CoreAudio经验的人可以看看,我将不胜感激。

这是我尝试过的:

  • 通过AudioObjectSetPropertyData()使用以下方法设置静音:

    address.mScope = kAudioDevicePropertyScopeInput;
    address.mElement = kAudioObjectPropertyElementMaster;
    address.mSelector = kAudioDevicePropertyMute;
    

此方法有效,我可以成功静音/取消静音,但最终我能够进入麦克风不再接收音频的状态。似乎是通过在C920处于静音状态时将默认输入切换到内部麦克风并切换回C920来触发的。我发现将C920麦克风恢复到良好状态的唯一方法是拔下USB电缆并将其重新插入。

  • 通过AudioObjectSetPropertyData()使用以下方法将音量设置为0.0f:

    address.mScope = kAudioDevicePropertyScopeInput;
    address.mElement = kAudioObjectPropertyElementMaster;
    address.mSelector = kAudioDevicePropertyVolumeScalar;
    

这几乎可行。 OSX UI输入音量滑块一直向左移动,但是麦克风仍在拾取一点音频。嗯,太近了!

打开“音频MIDI设置”应用程序将显示C920麦克风。当音量值设置为零时,dB值为20。当音量值设置为1时,db值设置为50。这与内置麦克风的dB范围为-有所不同。 12到12。不确定这是否重要。

设置静音或音量时,我尝试获取各个通道并进行设置。似乎没有影响。我认为使用这两种输入设备设置主通道都可以正常工作。

我想知道这是否是硬件问题。我应该注意,Mac上并未正式支持Logitech C920(尽管很多人都在使用它)。我能够控制内部麦克风而没有任何问题。希望我只是忽略了一些东西:-)

macos core-audio xcode5 audiotoolbox
1个回答
0
投票

[将音量kAudioDevicePropertyVolumeScalar设置为零时。您还应该使用kAudioDevicePropertyMute将静音设置为true。调整输入音量时,请注意检查静音状态。

例如:

  1. 将系统音频面板中的输入音量调整为0
  2. 使用kAudioDevicePropertyVolumeScalar将输入音量调整为100
  3. 查看分贝指示器,它保持零,但滑块位于100。无法捕获麦克风的声音。使用kAudioDevicePropertyMute获取静音值,我们可以获取静音= 1

结论:

系统中的输入处于“静音”状态,但在音频设置面板中未显示。当将音量调至零时,系统会自动将静音设置为true,而当音量大于零时,系统会禁用静音。

© www.soinside.com 2019 - 2024. All rights reserved.