我目前在 macOS 中使用 CoreAudio 来确定是否正在使用特定的音频输入设备。我正在尝试查找有关该设备(如果正在使用)中发生的情况的更多信息,但很难找到有关如何执行此操作的任何信息。
1) 是否可以找到当前正在使用特定音频输入设备的应用程序?
2) 是否可以确定应用程序是否正在使用音频设备(输入或输出)并且该设备当前在该特定应用程序中是否已静音?
谢谢
最佳答案
如果应用程序通过 kAudioDevicePropertyHogMode
占用了设备(即具有独占访问权限),则与该属性关联的 pid_t
的值是占用进程(如果设备未占用,则为 -1。)
否则,至少对于输出设备,多个应用程序可以共享该设备,并且各种音频流是混合的。在这种情况下,你能做的最好的事情(据我所知)是检查 kAudioDevicePropertyDeviceIsRunningSomewhere ,它会告诉你设备是否正在使用,但不会告诉你哪个进程正在使用它。/p>
对于问题 2,静音是音频设备的一个属性,特别是 kAudioDevicePropertyMute
。如果任何应用程序将该属性设置为 true,则所有应用程序的设备都将静音。
关于swift - 确定哪个应用程序正在使用音频设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41004926/