2

我正在构建一个小应用程序,它将在 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 库已初始化。

4

1 回答 1

0

根据javadoc Gst.init() 可以抛出GstException。下面的表达式呢?:

try {
  Gst.init();
} catch (GstException ex) {
  logger.log(Level.SEVERE, "Ошибка инициализации gstreamer!!!");
}
于 2011-07-07T14:02:27.457 回答