2016-12-06 47 views
2

我目前在macOS中使用CoreAudio來確定是否正在使用特定的音頻輸入設備。如果正在使用該設備,我試圖找到關於該設備正在發生的更多信息,但正在努力查找有關如何執行此操作的任何信息。確定哪個應用程序正在使用音頻設備

1)是否有可能找到當前正在使用特定音頻輸入設備的應用程序?

2)是否可以確定應用程序是否正在使用音頻設備(輸入或輸出)並且該設備目前已在該特定應用程序中靜音?

由於

回答

2

如果應用程序已在碎木設備(即具有獨佔訪問它)經由kAudioDevicePropertyHogMode,那麼相關聯的該屬性的pid_t的值是粗加工進程的進程ID(或-1,如果該設備沒有被佔用。)

否則,至少對於輸出設備,多個應用程序可以共享設備並且各種音頻流被混合。在這種情況下,您可以做的最好的(我知道的)是檢查kAudioDevicePropertyDeviceIsRunningSomewhere,它會告訴您設備是否在使用中,但不知道哪個進程正在使用它。

對於問題2,靜音是音頻設備的屬性,具體爲kAudioDevicePropertyMute。如果任何應用程序將該屬性設置爲true,則該設備將爲所有應用程序靜音。

相關問題