4

我是 Kurento 媒体服务器的新手,我正在尝试将一个事件从 kurento 媒体服务器发送到我拥有的 java 应用程序。

我使用以下步骤创建了一个事件:

编辑了interfacejson文件:

"events": [{
    "properties": [{
        "name": "Total",
        "doc": "Total",
        "type": "float"
    }],
    "extends": "Media",
    "name": "TotalDetected",
    "doc": "Total Detected."
}]

然后在我的.hpp文件中:

sigc::signal<void, TotalDetected> signalTotalDetected;

在我的.cpp文件中:

try {
    GST_WARNING ("Sending Event: TotalDetected");
    TotalDetected event (shared_from_this(), "Total-detected", total);
        signalTotalDetected (event);
    GST_WARNING ("Sent Event: TotalDetected");
    } catch (std::bad_weak_ptr &e) { 
    GST_WARNING ("EXCEPTION: Total detected ");
}

在我的 Java 服务器中,我使用以下方法注册了该事件:

totalFilter.addTotalDetectedListener(new EventListener<TotalDetectedEvent>() {
    @Override
    public void onEvent(TotalDetectedEvent event) {
        log.info("\n\nTotal Detected Event By:"+event.getTotal());
    }
});

但是在完成所有这些之后,我无法从 kms 接收任何事件,我查看了 kms 日志,我正在获取正在发送的事件日志,但我没有在 java 服务器端收到任何事件。

代码中有什么我遗漏的吗?

编辑 1:在 eclipse 控制台上我得到这个日志

[KurentoClient] 请求->
   {
       “身份证”:17,
       “方法”:“订阅”,
       “参数”:{
          “对象”:“fcffbeb5-4ee0-4b49-ba05-a7bc7e716b2f_kurento.MediaPipeline/cb218dbd-0d4a-48cd-88ee-e6ecaf9f4350_vadcustomfilter.VADCustomFilter”,
          "type":"TotalReceived",
          “sessionId”:“67361dad-bce7-4ad6-a4ce-a26090190bad”
       },
       “jsonrpc”:“2.0”
    }
[KurentoClient] <-Res
    {
        “身份证”:17,
        “结果”:{
            “值”:“0f2a346b-49f1-4867-aa7d-45ac3780bbbd”,
            “sessionId”:“67361dad-bce7-4ad6-a4ce-a26090190bad”
        },
        “jsonrpc”:“2.0”
    }

编辑2: 以下是输出dpkg -l | egrep -i "kurento|nice|kms"

ii gstreamer0.10-nice:amd64 -> 0.1.4-1                                   
ii gstreamer1.0-nice:amd64 -> 0.1.4-1                                   
ii gstreamer1.5-nice:amd64 -> 0.1.13.1~20160224182402.77.g7bbb87a.trusty
ii kms-cmake-utils -> 1.3.0.trusty                              
ii kms-core-6.0 -> 6.4.0.trusty                              
ii kms-core-6.0-dev -> 6.4.0.trusty                              
ii kms-elements-6.0 -> 6.4.0.trusty                              
ii kms-elements-6.0-dev -> 6.4.0.trusty                              
ii kms-filters-6.0 -> 6.4.0.trusty                              
ii kms-filters-6.0-dev -> 6.4.0.trusty                              
ii kms-jsonrpc-1.0 -> 1.1.0.trusty                              
ii kms-jsonrpc-1.0-dev -> 1.1.0.trusty                              
ii kmsjsoncpp -> 1.6.3~20160119154506.38.g263929e.trusty   
ii kmsjsoncpp-dev -> 1.6.3~20160119154506.38.g263929e.trusty   
ii kurento-media-server-6.0 -> 6.4.0.trusty                              
ii kurento-media-server-6.0-dev -> 6.4.0.trusty                              
ii kurento-module-creator-4.0 -> 4.0.4.trusty                              
ii libnice-dev -> 0.1.7.1~20160119154918.10.ge060eb5.trusty
ii libnice10:amd64 -> 0.1.7.1~20160119154918.10.ge060eb5.trusty
4

2 回答 2

3

尝试将您的 libnice 版本升级到 0.1.13,这是某些冰候选的错误来源。让我们看看这是否解决了事件的问题。

于 2016-03-09T10:01:20.380 回答
1

一切似乎都很好。您只需要确定事件是否被触发。

如果您通过错误更改警告,您将能够在不配置任何内容的情况下查看您的日志。这样您就可以知道事件是否被触发。

如果您看不到您的日志,则您可能在从 GStreamer 元素触发事件或注册来自 cpp 的信号时遇到问题。

于 2016-03-09T07:29:41.427 回答