使用 portaudio 为 connected/unconnected 设备回调?

Callback for connected/unconnected device using portaudio?

是否有回调通知设备列表何时更新?

如果没有,是否有检测方法(最好是跨平台)?

目前我找到的唯一方法是重新初始化 PortAudio。

ps: 我试图找到有关 PortAudio 文档的 "callbacks" 文档,但我找不到它。

如果你的OS是Linux,你可以使用inotify()系统调用,观察/dev目录,或者子目录。不过我不知道 Windows。

Is there a callback to know when the device list is updated?

不在主线代码中。在某些平台上有一个分支支持此功能。随时欢迎新的贡献者帮助完成这项工作。这是一个非常需要的功能。

请注意,设备列表 从不 在调用 Pa_Initialize()Pa_Terminate() 之间更新。这是 API 的基本不变量。该分支还支持 refresh 调用。

当前版本的方法是使用特定于平台的检查,然后按照您的建议调用 Pa_Terminate();Pa_Initialize();