小编kr4*_*4sh的帖子

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

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

这是我尝试过的:

  • 通过 AudioObjectSetPropertyData() 设置静音使用:

    address.mScope = kAudioDevicePropertyScopeInput;
    address.mElement = kAudioObjectPropertyElementMaster;
    address.mSelector = kAudioDevicePropertyMute;
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    address.mScope = kAudioDevicePropertyScopeInput;
    address.mElement = kAudioObjectPropertyElementMaster;
    address.mSelector = kAudioDevicePropertyVolumeScalar;
    
    Run Code Online (Sandbox Code Playgroud)

这几乎有效。OSX UI 输入音量滑块一直向左移动,但麦克风仍在接收一些音频。Uhhhhggg 如此接近!

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

在设置静音或音量时,我尝试获取各个通道并对其进行设置。好像没有什么影响。我认为两个输入设备设置主通道工作正常。

我想知道这是否是硬件问题。我应该注意的是,Mac 并未正式支持 Logitech C920(尽管有很多人使用它)。我可以毫无问题地控制内部麦克风。希望我只是忽略了一些东西:-)

macos core-audio audiotoolbox xcode5

5
推荐指数
1
解决办法
1574
查看次数

标签 统计

audiotoolbox ×1

core-audio ×1

macos ×1

xcode5 ×1