arecord和aplay之间的Python管道

arecord和aplay之间的Python管道,python,pipe,stdout,stdin,alsa,Python,Pipe,Stdout,Stdin,Alsa,我想录下声音,处理它,而不是在飞行中播放它。下面的代码应该描述更多 arecord -D plughw:USER -f S16_LE -t raw | python my_app.py | aplay -D plughw:USER -f S16_LE 我能够通过使用原始输入从我的app.py的arecord中捕获输入。现在,我无法将我的_app.py输出发送到aplay 我已经尝试在我的_app.py中使用子进程来运行aplay 但,我没听到扬声器里有声音 那么,如何在python应用程序和其

我想录下声音,处理它,而不是在飞行中播放它。下面的代码应该描述更多

arecord -D plughw:USER -f S16_LE -t raw | python my_app.py | aplay -D plughw:USER -f S16_LE
我能够通过使用原始输入从我的app.py的arecord中捕获输入。现在,我无法将我的_app.py输出发送到aplay

我已经尝试在我的_app.py中使用子进程来运行aplay

但,我没听到扬声器里有声音

那么,如何在python应用程序和其他进程之间建立管道作为输入和输出呢?
n、 b:如果有,请建议一种比原始输入更好的方法,用于从arecord捕获数据。

为什么不直接将数据写入stdout?@CL.,我已经尝试过sys.stdout.writedata,但aplay没有收到它。你能举例说明你的想法吗?我可能只是用错了标准输出。谢谢
cmdPlay = 'aplay -D plughw:USER -f S16_LE'
p = subprocess.Popen(
    cmdPlay,
    stdout = subprocess.PIPE,
    stdin = subprocess.PIPE,
    stderr = subprocess.PIPE,
    shell = True
)
p.communicate(input=dataHex.decode('hex'))