代码之家  ›  专栏  ›  技术社区  ›  Bernard

使用PyOpenAL时,正确的清理方法是什么?

  •  0
  • Bernard  · 技术社区  · 17 年前

    我正在研究PyOpenAL,以满足Python的一些声音需求(显然)。文档很少(由演示脚本组成,未经修改无法运行),但据我所知,有两层。OpenAL调用的直接包装和轻量级的“Python”包装器——这是我关心的后者。具体来说,你如何正确地清理?举个小例子:

    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 回复  |  直到 17 年前
        1
  •  1
  •   sth    16 年前
    #relese reference to l b and s
    del l
    del b
    del s 
    #now the WaveBuffer and Source should be destroyed, so we could:
    pyopenal.quit()
    

    quit() 在退出之前,这样你就不需要自己打电话了。