将音频输出复制到文件中

将音频输出复制到文件中

如何将我在耳机中听到的声音放入文件或 C/C++ 程序中的变量中?我想要像图像帧缓冲区之类的东西。我的主要目标是将声音发送到另一台计算机,因此我还需要读写权限。有谁知道怎么处理吗?

答案1

我做了一个测试录音,如下所示:

arecord -d 4 out.wav

你可以dd这样使用:

dd bs=1 if=out.wav | aplay

或者使用带有 while 循环的真正不稳定的无缓冲流:

while read -n 2048 bytes; do
   printf "$bytes" | aplay
done < out.wav

然后您可以netcat将其重定向到套接字或端口。

通过扬声器播放的声音可能已经缓冲在文件中。我不确定该文件位于何处,但也可以通过tail -fcat通过管道将其传输到其他位置netcat或类似的位置。

例如使用ALSApcm:

还可以考虑查看 PulseAudio 的源代码或使用实时传输协议 (rtp):

相关内容