在getChildren()方法中出现了协议异常。

16

当我尝试在运行我的自定义模块终端的mediapipeline上调用getChildren()时,我遇到了这个异常:

org.kurento.client.internal.server.ProtocolException: Exception creating Java Class for mycustomfilter.MyCustomFilter

这是触发它的代码:

List<MediaObject> mediaObjects = pipelines.get(i).getChildren();

我需要将 List<MediaObject> 强制转换为其他数据类型吗?

2个回答

2

当您为KMS创建自定义媒体元素时,还可以创建Java和JavaScript的客户端API(请参见此处文档)。在您的情况下,您需要为您的过滤器创建Java客户端,如下所示:

cmake .. -DGENERATE_JAVA_CLIENT_PROJECT=TRUE

生成的Java类(例如您的示例中的mycustomfilter.MyCustomFilter包)应该在调用getChildren()的项目的类路径中(内部调用Class.forName,请参见此处的代码)。


这是正确的,但如果我想使用自定义模块访问这样的KMS,而我没有jar文件怎么办?由于这些自定义模块可能会继承FilterImplHubImpl,所以将自定义模块直接转换为父类是不是可能的? - Sagar Pilkhwal
1
即使您没有JAR文件,仍然可以使用该模块。但在这种情况下,您需要直接使用Kurento协议(请参见此处的信息http://doc-kurento.readthedocs.io/en/stable/mastering/kurento_protocol.html)与KMS进行通信(即JSON-RPC消息)。但据我所知,如果您没有JAR文件,则无法解决初始问题(调用“getChildren()”时出现异常)。 - Boni García

0

你能试试这个吗?

List<MediaObject> mediaObjects = new ArrayList<MediaObject>(Arrays.asList(pipelines.get(i).getChildren()));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接