Mac OS X虚拟音频驱动程序

UpL1nK

我想创建一个虚拟音频设备,该设备从默认输出(它是输出IOAudioStream)获取音频数据,并将其转换为输入IOAudioStream。

我遍历了大部分示例,但是它们仅实现了一项功能,最多将输出IOAudioStream复制到输入IOAudioStream。这意味着,如果选择音频设备作为输出,则仅将音频转换为输入流。

这应该是可能的,因为ScreenFlow允许通过安装创建虚拟驱动程序的kext来录制计算机音频。

如何从默认输出访问音频数据并将其发送到虚拟驱动程序?

巨无霸攻击

看一下开源WavTap,它是开源SoundFlower虚拟声卡驱动程序的简化分支我相信这是一个.kext文件,它可以满足您的要求。

作为参考,以下是一些流行的商业封闭源选项的工作方式:
Rogue Amoeba的Audio Hijack Pro-
通过基于开源SoundFlower的代码捕获系统音频。kext-通过
为应用程序替换“补丁”框架来捕获应用程序的音频。启动应用程序时正常的CoreAudio.framework-
借助Unsanity的haxie“ Application Enhancer”(APE)捕获已运行的应用程序的音频

这些功能被标记为其“ Instant On”功能(InstantOn.kext)。

Ambrosia Software的WireTap Studio-
通过内部开发的.kext捕获系统音频和应用程序音频

Telestream的ScreenFlow -Capture
通过内部开发的.kext捕获系统音频(版本2.x使用varaudio.kext;版本3.x使用TelestreamAudio.kext)

Macsome的录音机-未知
方法

Araelium Group的Screenflick-
使用SoundFlower .kext捕获系统音频

更新#1
阅读作者的评论后,看来潜在的目标是能够捕获系统声音,而无需将虚拟音频驱动程序发布为设备(会出现在“系统偏好设置”列表中)并且无需更改当前的默认输出设备。 (或至少是设备已更改的外观)。

SoundFlower:在安装时将声音设备添加到列表中
WavTap:在安装时将声音设备添加到列表中;启动WavTap应用程序时自动选择设备;自动取消选择设备时,应用程序关闭和重新选择一台设备
的音频劫持临:再添仅在选择默认的系统声音的音频采集声音设备; 当不再选择音频捕获时删除声音设备,然后重新选择以前的设备
WireTap Studio:未知
ScreenFlow:捕获系统声音而无需更改当前默认输出设备,也无需将虚拟音频驱动程序发布为设备

更新2
:苹果公司CoreAudio工程师Jeff Moore引用WireTap和Audio Hijack Pro之类的应用程序时说:
“系统上没有API可以为您提供任何特定应用程序的输出或将系统不支持硬件... [捕获系统声音],这些人必须很聪明。除了让您愿意弄脏双手之外,没有什么可以阻止您执行相同的操作。事实上,Mac OS X的音频系统的设计首先是为了提高性能,这导致我们进行设计,在不付出性能损失的情况下不容易支持所需的功能,因此,我们选择了更好的性能,但代价是无法提供此功能。”

如果您想了解更多有关该主题的信息,请在CoreAudio API邮件列表中查看以下主题:
“ WireTap,CoreAudio的API,系统捕获和kexts ...”
“有关捕获软件播放的音频的另一个问题
”使用Mac上的CoreAudio捕获当前播放的音频“
”“音频劫持”“
”监视系统音频输出(如电线抽头)“
”将音频输出捕获到文件中“
”镜像音频输出“
”记录系统音频“

相关的SO问题:
使用无代码kext隐藏音频设备

长话短说,除非有人感到非常慷慨,否则您不太可能从Apple找到实现此目标的示例,也不太可能找到实现这一目标的开源代码信息似乎太有价值了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mac OS X虚拟音频驱动程序

来自分类Dev

适用于OS X的虚拟音频电缆

来自分类Dev

适用于Mac OS X的Logitech鼠标驱动程序替代品

来自分类Dev

安装最新的steinberg声卡驱动程序后,Mac OS X Mountain Lion内核出现恐慌

来自分类Dev

我可以找到Mac OS X的驱动程序(即时客户端)oracle / odbc吗?

来自分类Dev

在Mac OS X Yosemite上安装mongoDB PHP驱动程序

来自分类Dev

为什么我在Mac OS X 10.9 Mavericks上没有佳能打印机驱动程序?

来自分类Dev

无法在Mac OS 10.9上安装mongodb php驱动程序

来自分类Dev

Mac OS X链接器

来自分类Dev

在Mac OS X上的TFS

来自分类Dev

Mac OS X睡眠模式

来自分类Dev

Mac OS X来自哪里?

来自分类Dev

在Mac OS X上卸载?

来自分类Dev

Mac OS X上的Python

来自分类Dev

Mac OS X是开源的吗?

来自分类Dev

Mac OS X Xcode库

来自分类Dev

卸载Java Mac OS X

来自分类Dev

在Mac OS X中单声道音频插孔的输出

来自分类Dev

JavaFX应用程序未在虚拟Mac OS中运行

来自分类Dev

如何在Ubuntu 12.04上虚拟运行Mac OS X

来自分类Dev

设置虚拟主机时,Mac OS X Mavericks问题

来自分类Dev

如何在Ubuntu 12.04上虚拟运行Mac OS X

来自分类Dev

在无法启动Mac OS X的Mac上安装ubuntu 12.04

来自分类Dev

在无法启动Mac OS X的Mac上安装ubuntu 12.04

来自分类Dev

Mac OS上的JavaFX应用程序

来自分类Dev

Microsoft虚拟音频设备驱动程序样本(MSVAD)仅创建44字节文件

来自分类Dev

MSVAD虚拟音频示例驱动程序“ Inf2Cat可签名性测试失败”(Windows WDK 8.1)

来自分类Dev

在Mac OS X Mavericks上安装Agda

来自分类Dev

Mac OS X上的QScrollArea透明背景