如何将声音重定向至 FIFO 文件?

如何将声音重定向至 FIFO 文件?

我有一个使用 FIFO 文件与用户交互的程序。可以进行音频调用,将输出定向arecord到程序的某个 FIFO 文件:

arecord -r 48000 -c 1 -f S16_LE > call_in

可以通过将程序的其中一个 FIFO 文件的输出定向到以下位置来应答音频呼叫aplay

aplay -r 48000 -c 1 -f S16_LE - < call_out

如何使用音频文件代替第一个命令(用于拨打电话的命令)?假设我想播放该call_in文件中的“sound.wav”,该怎么做?

答案1

如果arecord的输入是您的声卡,那么我建议:aplay sound.wav & arecord call_in

aplay应播放您的消息。允许立即执行下&一个命令,该命令应开始录制发送到声卡的内容。arecordaplay

实际上,arecord call_in & aplay sound.wav这样可能会更好,这样您就可以确保在播放消息之前进行录制。

答案2

假设的输出arecord在功能上类似于 wav 文件的内容(即,它们是相同的媒体格式),您可以执行以下操作:

cat sound.wav > call_in

相关内容