如何将我在耳机中听到的声音放入文件或 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 -f
或cat
通过管道将其传输到其他位置netcat
或类似的位置。
例如使用ALSA
pcm:
- http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
- http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html
还可以考虑查看 PulseAudio 的源代码或使用实时传输协议 (rtp):