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 ファイルを生成するのではなく、ファイルを生成してオーディオを追加します。その結果、ファイルをチェックするたびに、準備ができているファイルのチャンクがアップロードされます。

ファイルが完了したときにスクリプトにファイルをアップロードさせるか、期間が終了したときにラメにファイルを生成させたいだけです。

ファイルがもう使用されていないことを確認するにはどうすればよいですか。または、不完全な一時ファイルを使用して、完成したファイルをメイン ディレクトリに保存することはできますか。

4

1 に答える 1

1

プロセスが完了するのを待ちませんか?communicate返却後にアップロードするだけです。

于 2012-10-15T18:21:31.733 に答える