我正在构建一个小应用程序,它将在 java 中播放来自互联网的流式音频(主要是互联网广播电台)。我决定为声音使用 gstreamer-java 库,它使用 JNA。
我想在代码中包含一个检查,以查看 gstreamer 库是否已初始化。当我离开“Gst.init()”代码时(模拟库没有正确初始化的情况),应用程序抛出以下消息:
(process:21888): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.22.3/gobject/gtype.c:2458: initialization assertion failed, use IA__g_type_init() prior to this function
(process:21888): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
该应用程序调用 gstreamer-java 库。出现错误消息,但线程继续运行,占用 CPU。
有没有办法捕捉错误或添加检查以防止它发生?
另一种方法是将“Gst.init()”放在主类中,但我不确定这是否总能保证 gstreamer 库已初始化。