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

Macos DriverKit是否适用于自定义USB设备以控制麦克风音量(无流)?,macos,usb,hid,driverkit,macos-system-extension,Macos,Usb,Hid,Driverkit,Macos System Extension,我想就如何在MacOS上与自定义USB HID设备进行理想通信征求指导意见 用例 通过外部USB HID设备修改麦克风音量 问题 我可以使用DriverKit(HIDDriverKit)还是需要使用IOKit?我在这里读过一些关于音频限制的内容,但不确定哪些内容不受支持 DriverKit不支持操作音频或其他功能的USB设备 通过蓝牙或Wi-Fi进行无线通信。对于那些类型的 设备,使用IOKit创建内核扩展。 - 在我的情况下,DriverKit是否仍然有效,因为我不发送音频流,而只控制音量 非

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

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

问题 我可以使用DriverKit(HIDDriverKit)还是需要使用IOKit?我在这里读过一些关于音频限制的内容,但不确定哪些内容不受支持

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

在我的情况下,DriverKit是否仍然有效,因为我不发送音频流,而只控制音量

非常感谢! 干杯
汤姆

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

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

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


顺便说一句,它不一定是一个发布代理:一个带有UI的普通Cocoa应用程序也可以完成所有这一切。(事实上,您可能希望向按下按钮的用户显示某种形式的UI作为反馈。)

嘿,菲尔!非常感谢。事实上,我目前有一个Cocoa应用程序,正如你提到的,它工作得很好,问题是当我将另一个窗口调到焦点时,例如,将焦点切换到Safari,它停止收听按钮,然后我切换回我的应用程序,它再次工作。看起来这个过程好像被暂停了或者什么的。这就是为什么我认为,与HID设备的通信必须运行在更深的背景中。我希望它能像鼠标或键盘一样工作,无论哪个应用程序处于最前沿。您知道如何使连接处于活动状态的一些技巧吗?:-)啊,有趣的是,我没有遇到这个问题,这可能取决于HID设备的子类型。你有没有试过使用这个软件?如果这没有帮助,您可以尝试找出如果您在以root身份运行的进程中处理事件会发生什么情况。(
sudo
)如果这有帮助,那么将驱动程序方面移动到启动守护进程应该可以工作。(这些以root运行。)我一定会尝试这些选项!问题可能是因为我使用了SiliconLabs(HID USB桥接器生产商)提供的本机SDK Mac库。该设备与HID兼容,因此您建议的方法可能有效。谢谢你的指导!