我目前正在macOS中使用CoreAudio来确定是否正在使用特定的音频输入设备。我正在尝试找到有关该设备正在使用的内容的更多信息,但是很难找到有关如何执行此操作的任何信息。
1)是否可以找到当前使用特定音频输入设备的应用程序?
2)是否可以确定应用程序是否正在使用音频设备(输入或输出)并且该设备当前是否在该特定应用程序中静音?
由于
答案 0 :(得分:3)
如果应用程序已经通过kAudioDevicePropertyHogMode
占用了设备(即具有对它的独占访问权限),则与该属性关联的pid_t
的值是占用过程的进程ID(或 - 如果设备没有被堵塞,则为1。)
否则,至少对于输出设备,多个应用程序可以共享设备,并且各种音频流是混合的。在这种情况下,你能做的最好的事情(据我所知)是检查kAudioDevicePropertyDeviceIsRunningSomewhere
,它会告诉你设备是否正在使用,而不是使用它的是哪个进程。
对于问题2,静音是音频设备的属性,特别是kAudioDevicePropertyMute
。如果任何应用程序将该属性设置为true,则设备将被静音以用于所有应用程序。