小编典典

“ AL lib:alc_cleanup:1设备未关闭”是什么意思?

java

我正在尝试将自己投入到Libgdx
OpenGL框架中。我曾经用来LwjglApplication创建一些简单的应用程序,这些应用程序可以渲染盒子,一些网格物体和一些纹理。我遇到了Aurelien
Ribon的应用程序,该应用程序创建了刚性的Box2D实体。他使用LwjglCanvas来与Java的Swing集成。我尝试自己制作一个,JFrame然后创建了一个,然后添加了LwjglCanvas。然后将JFrame的默认操作设置为EXIT_ON_CLOSE

但是,每次我关闭应用程序时,都会记录到控制台:

AL lib: alc_cleanup: 1 device not closed

我不知道这意味着什么,也没有对我造成任何伤害。我只想知道这是什么意思。根据LwjglCanvas文档:

All OpenGL calls are done on the EDT. This is slightly less efficient then a dedicated thread, but greatly simplifies synchronization. Note that you may need to call stop() or a Swing application may deadlock on System.exit due to how LWJGL and/or Swing deal with shutdown hooks.

LwjglCanvas.stop()应该在哪里绑定,应该将其添加到EventDispatchThread队列还是应该将其绑定到JFrame.addWindowListener

“ AL lib:alc_cleanup:1设备未关闭”的真正含义是什么?

非常感谢!


阅读 3906

收藏
2020-11-16

共1个答案

小编典典

AL库是Libgdx(OpenAL变体之一)使用的“音频库”。

我相信此消息仅表示音频库正在为您清理一些(在您的情况下为一个)音频流/句柄。如果您在退出时看到此消息,则该消息无害,因为操作系统将清除所有资源。

如果您在退出前在内部清理音频,则该消息应消失。

有关更多详细信息,请alc_cleanup在此处查找:[http](http://repo.or.cz/w/openal-
soft.git/blob/HEAD:/Alc/ALc.c) : [//repo.or.cz/w/openal-
soft.git/blob/HEAD](http://repo.or.cz/w/openal-soft.git/blob/HEAD:/Alc/ALc.c)
/Alc/ALc.c
2020-11-16