fra*_*mon 9 audio macos core-audio
我想知道是否有一种编程方式(公共API,终端命令,AppleScript等)列出当前通过Mac OS 10.6中默认声音输出播放声音的所有进程?
我已经尝试使用"lsof | grep -i coreaudio"终端命令列出具有Core Audio句柄的进程,但这并不能告诉我这些进程当前是否正在输出声音; 他们可能之前已经输出了声音,或者他们打算将来做这些声音.
例如,如果我打开谷歌浏览器,当我使用lsof命令时,它首先没有列出.然后,如果我在Youtube上加载视频,它会连接到Core Audio,因此会被列出.但是,当我完成视频时,即使我完全关闭浏览器窗口,它仍然被列为连接到驱动程序,即使它显然不再播放声音.它只在我退出进程时停止列出.
请注意,虽然在Windows平台上使用C++有很长的编程经验并且非常了解Windows API,但我对Mac OS编程很新,所以如果我错过了一些明显的东西,请理解.
谢谢,FrançoisCharron
Jar*_*ohn -1
我知道这篇文章已经很老了,但它确实有一些投票,所以人们可能会通过搜索查询遇到它。
我非常确定这是不可能的,除非您编写一个嵌入到使用 CoreAudio 的每个进程中的 CoreAudio 插件。这项工作与创建 Windows 音量混合器的 Mac 版本非常相似。
有一个开源实现(https://github.com/zonque/PulseAudioOSX),尽管它没有维护,而且我在构建它方面运气不佳。还有一些专有的解决方案,例如 Prosoft Engineering 的 Hear,应该能够做到这一点,但我认为它们没有提供用于查询的 API。
注意:我已经构建了 MuteTab,它尝试在浏览器中执行相同的操作(在 Flash 更改和引入音频指示器之前),并构建了 mute.fm (Windows),它需要它以及控制音量的能力如果我把它移植到 OSX 上工作。
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |