【问题标题】:Determine which application is using audio device确定哪个应用程序正在使用音频设备
【发布时间】:2016-12-06 21:07:22
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 我正在尝试使用 c++ 来解决这个问题。但我不知道该怎么做。你有它的参考代码吗?

标签: swift macos audio hardware core-audio


【解决方案1】:

如果应用程序通过kAudioDevicePropertyHogMode 占用了设备(即拥有对它的独占访问权),则与该属性关联的pid_t 的值是占用进程的进程ID(如果设备则为-1没有被占用。)

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

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

【讨论】:

    猜你喜欢
    • 2019-04-14
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 2013-06-16
    • 2012-04-30
    相关资源
    最近更新 更多