2016-12-06 166 views
2

我目前在macOS中使用CoreAudio来确定是否正在使用特定的音频输入设备。如果正在使用该设备,我试图找到关于该设备正在发生的更多信息,但正在努力查找有关如何执行此操作的任何信息。确定哪个应用程序正在使用音频设备

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

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

由于

回答

2

如果应用程序已在碎木设备(即具有独占访问它)经由kAudioDevicePropertyHogMode,那么相关联的该属性的pid_t的值是粗加工进程的进程ID(或-1,如果该设备没有被占用。)

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

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

相关问题