0
p1 = subprocess.Popen(["arecord", "-Dhw:1,0", "-fS16_LE", "-d120", "-r44100"],stdout=subprocess.PIPE)
p2 = subprocess.Popen(["lame", "-", "test/%s/%s" %(dirname, filename)], stdin=p1.stdout)


output = p2.communicate()[0]

正如您在此处看到的,我正在使用 arecord 直接录制到 mp3。

我面临的问题是我需要上传我正在录制的文件,但是一旦开始录制,它就会生成一个文件并将音频附加到它,而不是在录制的持续时间完成时生成 mp3 文件。结果是每次检查文件时,它都会上传准备好的文件块。

我只希望脚本在文件完成时上传文件,或者我希望 lame 在持续时间结束时为我生成文件。

我如何检查该文件是否不再使用,或者可能使 lame 使用临时文件,然后将完成的文件保存到主目录。

4

1 回答 1

1

为什么不等待该过程完成?communicate退货后上传即可。

于 2012-10-15T18:21:31.733 回答