代码之家  ›  专栏  ›  技术社区  ›  Jeff Coe

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

  •  2
  • Jeff Coe  · 技术社区  · 9 年前

    我目前正在macOS中使用CoreAudio来确定是否使用了特定的音频输入设备。我试图找到更多关于该设备在使用中的情况的信息,但很难找到关于如何操作的信息。

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

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

    谢谢

    1 回复  |  直到 9 年前
        1
  •  3
  •   Tim    9 年前

    如果应用程序通过以下方式占用了设备(即独占访问设备): kAudioDevicePropertyHogMode ,则 pid_t 与该属性关联的是占用进程的进程id(如果设备未占用,则为-1)

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

    kAudioDevicePropertyMute 如果任何应用程序将该属性设置为true,则设备将为所有应用程序静音。