私は、PythonでいくつかのサウンドニーズにPyOpenALを見ています(明らかに)。ドキュメンテーションはまばらです(デモスクリプトで構成されていますが、変更されていない場合は動作しません)が、私が知る限り、2つのレイヤーがあります。 OpenAL呼び出しと軽量のPythonのラッパーの直接ラッピング - それは私が心配している後者です。具体的には、どのように正しくクリーンアップしますか?我々は小さな例取る場合:そのままPyOpenALを使用しているときにクリーンアップする正しい方法は何ですか?
import time
import pyopenal
pyopenal.init(None)
l = pyopenal.Listener(22050)
b = pyopenal.WaveBuffer("somefile.wav")
s = pyopenal.Source()
s.buffer = b
s.looping = False
s.play()
while s.get_state() == pyopenal.AL_PLAYING:
time.sleep(1)
pyopenal.quit()
を、メッセージ「は、1つのソースは削除されず、一つのバッファ削除されない」の線に沿って端末に上に印刷されています。しかし、私はこれらのオブジェクトでネイティブのOpenAL呼び出しを使用できないと仮定しています。どうすれば正しくクリーンアップできますか?
EDIT:
私は最終的にはちょうどpyopenal不時着し、(pyopenalがストレートOpenALの機能を公開し、私はSIGFPEを取得保管)OpenALのとalureかけて少量のctypesラッパーを書きました。私がここでやろうとしていたことについて、まだ興味があります。あなたはそれを自分で呼び出す必要がいけないのでpyopenalの
意味があります。私はPyOpenALにATMをインストールしていないので、あなたの言葉を取っておきます。 – Bernard