0

Py-Audiere を使用して作業しているプログラムにオーディオ キューを追加しようとしています。ただし、サウンドは、IDlE 内で run コマンドを使用した場合 (または手動でインタープリターに挿入した場合) にのみ再生され、呼び出しが特定の方法で行われた場合にのみ再生されます。これはコード スニペットです。

import audiere

filename = 'Bell'
d = audiere.open_device()
filename += '.mp3'
bell = d.open_file(filename)
bell.repeating = True

def play_tone():
    bell.play()

play_tone()

IDLE 以外で実行しても何も起こりません。IDLE で実行しても、すべてを関数に移動してファイル名を渡すと、何も起こりません。

このライブラリで何が起こっているのかについて非常に混乱しており、現時点では、このライブラリを使用する必要があるかどうかさえわかりません. 何が起こっているのか、または代替手段を知っている人はいますか (私は GStreamer を検討しましたが、ドキュメントを理解できません)?

4

1 に答える 1

1

私は audiere を少し試してみました (このライブラリについて聞いたことはありません)。バックグラウンドで新しいスレッドでサウンドを再生しているようです。

コード スニペットでは、audiere にベルの再生を開始するように指示しますが、完全に再生するのに十分な時間を与えることはありません。これを Idle または Python インタープリターで実行すると、Python プロセスがまだ実行中であり、サウンドがバックグラウンドで再生されるだけなので問題ありません。

彼らのウェブサイトには、これを達成する方法を示す小さなスニペットがあります。

import time
def play_tone():
    bell.play()
    while bell.playing:
        time.sleep(0.1)

gstreamer に関しては、これまでに使用したことがない場合、ドキュメントは少し複雑になる可能性があります。それを使用する方法を学ぶために私が見つけた最良の方法は、それを試してみることです. gstreamer の仕組みの基本を説明するこのチュートリアルから始めるとよいでしょう。このコード スニペットは、単一のサウンド ファイルを再生する方法を示しています。また、このirc 会話も役に立ちます。

于 2011-02-21T20:53:31.963 に答える