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

时间:2016-12-06 21:07:22

标签: swift macos audio hardware core-audio

我目前正在macOS中使用CoreAudio来确定是否正在使用特定的音频输入设备。我正在尝试找到有关该设备正在使用的内容的更多信息,但是很难找到有关如何执行此操作的任何信息。

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

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

由于

1 个答案:

答案 0 :(得分:3)

如果应用程序已经通过kAudioDevicePropertyHogMode占用了设备(即具有对它的独占访问权限),则与该属性关联的pid_t的值是占用过程的进程ID(或 - 如果设备没有被堵塞,则为1。)

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

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