下面的命令将记录来自默认设备的数据并将其输出到 stdout,aplay 将播放来自 stdin 的数据。
arecord -D hw:0 | aplay -D hw:1 -
为什么我们更喜欢 stdin 和 stdout 而不是如下所示写入文件并从中读取?
arecord -D hw:0 test.wav | aplay -D hw:1 test.wav
使用管道进行此操作比使用文件更加高效和有效,原因如下:
1) 管道(|)是一种进程间通信技术。一个进程的输出使用基于内核的缓冲区直接发送到另一进程的输入。因此,这比将某些内容写入硬盘中的文件并从中读取速度更快。然而,这也取决于其他因素。通常,内核还会从缓冲区和磁盘缓存中写入和读取小文件。
2)使用进程间通信技术也有助于获得并发操作。相反,如果您必须向文件写入内容然后从中读取内容,则必须分步骤执行,因此您将失去并发性。
我想你的意思是
arecord -D hw:0 test.wav && aplay -D hw:1 test.wav
代替
arecord -D hw:0 test.wav | aplay -D hw:1 test.wav
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)