我是编程初学者,我想用 C++ 做一个个人项目来发展我的技能。我想到的项目涉及在我的笔记本电脑(运行 Windows 10)上播放音频,对其进行分析,并将数据发送到 arduino,该 arduino 将与正在播放的音频同步改变 LED 灯的颜色和亮度。我希望这样我就可以简单地播放 Spotify 上的歌曲或 Youtube 等上的音乐视频,程序将从该音频流中获取数据作为输入。在其他地方,我见过程序使用录制的 WAV 文件中的音频或来自麦克风的流作为输入,但不是我想要的。我想在聚会上使用此程序,因此使用麦克风作为解决方法并不理想。
这可能吗?如果是这样我应该如何解决这个问题?我应该查看某些 API 还是什么?如果程序将音频作为输入,我仍然可以在蓝牙扬声器之类的设备上播放音乐吗?或者一次只能向一个地方发送数据?
我的室友在编程方面比我好得多,他在 Mac 上使用 Swift 完成了这项工作,虽然我没有 Mac,但使用 Linux 会更容易吗?
最佳答案
现代 Windows 有“立体声混音”录音设备,就是为了这个目的。启用方法如下:https://technicalustad.com/enable-stereo-mix-in-windows-10/
完成设置后,在您的 C++ 程序中使用您想要的任何录制 API。
这是一个示例,它执行您所要求的操作,打开录音设备,开始录音,并将音频样本发送到参数中提供的类:https://learn.microsoft.com/en-us/windows/win32/coreaudio/capturing-a-stream您可能希望用 CPU 时间来换取应用程序的延迟,即不要休眠 hnsActualDuration/REFTIMES_PER_MILLISEC/2
,而是改为 Sleep( 0 )
或 Sleep (1)
关于c++ - 如何将PC上播放的音频数据发送给C++程序作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57043016/