Swift 确定哪个应用程序正在使用音频设备

Swift 确定哪个应用程序正在使用音频设备,swift,macos,audio,hardware,core-audio,Swift,Macos,Audio,Hardware,Core Audio,我目前正在macOS中使用CoreAudio来确定是否正在使用特定的音频输入设备。我正试图找到更多关于该设备在使用中会发生什么的信息,但很难找到关于如何做到这一点的信息 1) 是否可以找到当前正在使用特定音频输入设备的应用程序 2) 是否可以确定应用程序是否正在使用音频设备(输入或输出),并且该设备当前在该特定应用程序中处于静音状态 谢谢如果应用程序通过kAudioDevicePropertyHogMode占用了设备(即独占访问),那么与该属性关联的pid\u t的值就是占用进程的进程id(如果

我目前正在macOS中使用CoreAudio来确定是否正在使用特定的音频输入设备。我正试图找到更多关于该设备在使用中会发生什么的信息,但很难找到关于如何做到这一点的信息

1) 是否可以找到当前正在使用特定音频输入设备的应用程序

2) 是否可以确定应用程序是否正在使用音频设备(输入或输出),并且该设备当前在该特定应用程序中处于静音状态


谢谢

如果应用程序通过
kAudioDevicePropertyHogMode
占用了设备(即独占访问),那么与该属性关联的
pid\u t
的值就是占用进程的进程id(如果设备未占用,则为-1)

否则,至少对于输出设备,多个应用程序可以共享该设备,并且各种音频流被混合。在这种情况下(据我所知),您最好检查
kAudioDevicePropertyDeviceIsRunningSomewhere
,它会告诉您设备是否正在使用,但不会告诉您哪个进程正在使用它


对于问题2,静音是音频设备的一个属性,特别是
kaudiodevicepropertyperty
。如果任何应用程序将该属性设置为true,则该设备将被静音用于所有应用程序。

我试图用C++来确定相同的。但我不知道怎么做。你有它的参考代码吗?