【问题标题】:ProtocolException in getChildren()getChildren() 中的协议异常
【发布时间】:2017-01-29 08:33:52
【问题描述】:

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

org.kurento.client.internal.server.ProtocolException:异常 为 mycustomfilter.MyCustomFilter 创建 Java 类

这是触发它的代码:

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

我是否必须将List&lt;MediaObject&gt; 转换为其他数据类型?

【问题讨论】:

    标签: java kurento


    【解决方案1】:

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

    cmake .. -DGENERATE_JAVA_CLIENT_PROJECT=TRUE
    

    生成的 Java 类(在您的示例中为包 mycustomfilter.MyCustomFilter)应位于调用 getChildren() 的项目的类路径中(在内部它调用 Class.forName,请参见代码 here)。

    【讨论】:

    • 那是正确的,但是如果我想使用我没有 jar 的自定义模块访问这样的 KMS 怎么办。由于这些自定义模块可能继承FilterImpl 或HubImpl,难道不能将自定义模块直接转换为父类吗?
    • 即使您没有 JAR,您仍然可以使用该模块。但在这种情况下,您需要使用 KMS(即 JSON-RPC 消息)直接使用 Kurento 协议(请参阅信息here)。但据我所知,如果您没有 JAR,则无法解决最初的问题(调用 getChildren() 时出现异常)。
    【解决方案2】:

    你能试试这个吗?

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

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 1970-01-01
      • 2015-04-10
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多