Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何以编程方式列出当前在Mac OS 10.6上使用默认声音输出的进程_Macos_Audio_Core Audio - Fatal编程技术网

Macos 如何以编程方式列出当前在Mac OS 10.6上使用默认声音输出的进程

Macos 如何以编程方式列出当前在Mac OS 10.6上使用默认声音输出的进程,macos,audio,core-audio,Macos,Audio,Core Audio,我想知道是否有一种编程方式(公共API、终端命令、AppleScript等)来列出当前通过Mac OS 10.6中的默认声音输出播放声音的所有进程 我已经尝试使用“lsof | grep-I coreaudio”终端命令列出对核心音频具有句柄的进程,但这并不能告诉我这些进程当前是否正在输出声音;他们可能以前输出过声音,或者将来打算这样做 例如,如果我打开Google Chrome,当我使用lsof命令时,它首先不会被列出。然后,如果我在Youtube上加载一个视频,它会连接到核心音频,所以它会被

我想知道是否有一种编程方式(公共API、终端命令、AppleScript等)来列出当前通过Mac OS 10.6中的默认声音输出播放声音的所有进程

我已经尝试使用“lsof | grep-I coreaudio”终端命令列出对核心音频具有句柄的进程,但这并不能告诉我这些进程当前是否正在输出声音;他们可能以前输出过声音,或者将来打算这样做

例如,如果我打开Google Chrome,当我使用lsof命令时,它首先不会被列出。然后,如果我在Youtube上加载一个视频,它会连接到核心音频,所以它会被列出。但是,当我处理完视频后,即使我完全关闭浏览器窗口,它仍然被列为已连接到驱动程序,即使它显然不再播放声音。只有当我退出流程时,它才会停止列出

<>请注意,虽然在Windows平台上有C++编程经验,而且对Windows API有很好的了解,但对于Mac OS编程来说,我还是很新的,所以请理解我是否忽略了一些明显的东西。 谢谢,
弗朗索瓦·查伦(François Charron)

我知道这篇文章很老了,但它确实有一些投票权,所以人们可能会通过搜索查询找到它

我很确定这是不可能的,除非您编写一个CoreAudio插件,嵌入到使用CoreAudio的每个进程中。这项工作与创建Mac版本的Windows音量混合器非常相似

这个()有一个开源实现,尽管它没有维护,而且我还没有很好的运气来构建它。还有一些专有的解决方案,比如Prosoft Engineering的Hear,应该能够做到这一点,但我认为它们没有提供用于查询的API


注意:我已经构建了mute选项卡,它尝试在浏览器中执行相同的操作(在Flash更改和引入音频指示器之前),并且已经构建了mute.fm(Windows)如果我把它移植到OSX上,它需要这个功能以及控制卷的能力。

我给你一个答案,让我找到一个开源实现。后来我放弃了我的项目,但它给了我一个很好的提示,告诉我在哪里可以找到有效的解决方案。
lsof | grep-I coreaudio
正是我所需要的