我正在构建一个小应用程序,它将在互联网上播放流媒体音频(主要是互联网广播电台)。我决定使用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库的初始化。
答案 0 :(得分:0)
根据javadoc Gst.init()可以抛出GstException。 以下表达式怎么样?:
try {
Gst.init();
} catch (GstException ex) {
logger.log(Level.SEVERE, "Ошибка инициализации gstreamer!!!");
}