DriverKit 是否适用于自定义 USB 设备来控制麦克风音量无流?

问题描述

我想就如何在 MacOS 上理想地与自定义 USB HID 设备进行通信寻求指导。

用例 通过外部 USB HID 设备修改麦克风音量。

问题 我可以为此使用 DriverKit (HIDDriverKit) 还是我需要使用 IOKit?我在此处阅读了有关音频限制的内容,但不确定究竟不支持哪些内容

DriverKit 不支持操纵音频的 USB 设备或 通过蓝牙或 Wi-Fi 进行无线通信。对于那些类型 设备,使用 IOKit 创建内核扩展。 — Source

DriverKit 是否仍然适用于我的情况,因为我不是在发送音频流而是仅控制音量?

非常感谢! 干杯, 汤姆

解决方法

如果我理解正确,你甚至不需要使用DriverKit。 (根据经验:如果可以,请避免使用它!)

您可以直接从用户空间进程与符合 HID 的设备进行通信。用户空间进程通常也可以控制音频设备的音量。

到目前为止,最简单的选择是拥有一个使用 IOKit 匹配作为其启动条件的启动代理,以便在您的设备连接时启动。您的代理可以使用 IOHIDManager API 与设备通信以在您按下按钮时接收事件,然后使用常规 Core Audio API 来控制音量。

顺便说一句,它不必是启动代理:带有 UI 的常规 Cocoa 应用程序也可以完成所有这些工作。 (实际上,您可能希望向按下按钮的用户显示某种形式的 UI 作为反馈。)