我想捕获播放给用户的所有音频(所有声音一起)。目前我在 Windows 上工作,但如果代码是跨平台的(但不一定)会很好。可以用 OpenAL 做到这一点吗?如何?代码示例会很棒。
语言:C++
我认为这样做的唯一方法是创建一个替代音频设备驱动程序来接收所有音频请求,然后将它们转发给原始设备驱动程序。有许多以这种方式工作的现有应用程序,包括Freecorder、MP3myMP3 Recorder、SoundTap和Wondershare,仅举几例(谷歌“Streaming Audio Recorder”)。
至于跨平台,我会说没有机会,因为它依赖于操作系统驱动程序模型。
根据您系统中的内容,一些(不是全部)声卡提供“立体声混音”功能,可以像任何其他录音设备一样使用。这基本上正是您想要的,因为它实际上是所有正在播放的立体声的混合。