2016-03-09 3 views
4

Я новичок в медиасервере Kurento, я пытаюсь отправить событие с медиа-сервера kurento на приложение java, которое у меня есть.События, не достигнувшие kurento java server

Я создал событие, используя следующие шаги:

редактировали файл interface JSon:

"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 я получаю журналы отправки событий, но я не получаю никакого события на стороне сервера java.

Есть что-то недостающее в коде?

Edit 1: на затмение консоли я получаю Этот журнал

 
[KurentoClient] Req-> 
    { 
     "id":17, 
     "method":"subscribe", 
     "params":{ 
      "object":"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 
    { 
     "id":17, 
     "result":{ 
      "value":"0f2a346b-49f1-4867-aa7d-45ac3780bbbd", 
      "sessionId":"67361dad-bce7-4ad6-a4ce-a26090190bad" 
     }, 
     "jsonrpc":"2.0" 
    } 

Edit 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 
+0

Я пытаюсь вызвать событие в своем плагине (отправить ответ клиенту). Являются ли вышеуказанные шаги достаточно, чтобы вызвать событие? Или я хочу реализовать «gst plugin» или что-то еще. Я упомянул несколько километров фильтров. Но я не получил точного шага, чтобы отправить значение в мероприятии (не получил никакой документации). Когда я делаю вышеописанные шаги, я получаю следующую ошибку: «ошибка« shared_from_this »не была объявлена ​​в этой области». Примечание ::: Я использую модуль Opencv. Не могли бы вы помочь мне сделать это? Благодарю. – SKK

+0

использовать 'this' вместо метода' static' для 'error shared_from_this', и да, событие sendign из пользовательского плагина kms на java-сервер хорошо работает в описанных здесь шагах. –

+0

Спасибо за ответ. Я использовал модуль OpenCV. Когда я добавляю события в «интерфейс» Json и пытаюсь сделать cmake, у меня есть 4 сгенерированных файла в папке с объектами. В какой CPP я должен внести изменения. У меня есть файлы moduleImpl.cpp, moduleImpl.hpp, moduleOpenCVImpl.cpp и moduleOpenCVImpl.hpp. Я добавил свои логики в файл «moduleOpenCVImpl.cpp». Можете ли вы помочь мне двигаться вперед? – SKK

ответ

3

Попробуйте обновить версию libnice до 0.1.13, это источник ошибок с некоторыми кандидатами на лед. Посмотрим, решит ли это проблему с событиями.

+1

привет, спасибо за вашу помощь ... обновление libnice до 0.1.13 решило эту проблему ... –

+0

Я пробовал свой собственный модуль с kms 6.5 Я получаю эту ошибку, когда kms пытается для загрузки модуля 'undefined symbol: _ZTv0_n80_N7kurento15MediaObjectImpl9SerializeERNS_14JsonSerializerE' –

1

Все кажется в порядке. Вам просто нужно быть уверенным, что это событие уволено.

Если вы измените предупреждения по ошибкам, вы сможете увидеть свой журнал, не настраивая ничего. Таким образом, вы можете узнать, запущено ли событие.

Если вы не видите свои журналы, у вас может возникнуть проблема с запуском события из элемента GStreamer или, возможно, для регистрации сигнала cpp.

+0

yes Я могу видеть журналы, но я не получаю это событие на java-сервере. –

+1

Я получаю эту ошибку на консоли eclipse: '<-Res {" id ": 19," error ": {" code ": 40401," message ":" Ошибка добавления кандидата "," data ": {" type ": «ICE_ADD_CANDIDATE_ERROR»}}, «jsonrpc»: «2.0»} ', когда любой клиент подключается к' Req-> .... "operation": "addIceCandidate ....' –

+0

Вы обновили пакеты kms до версии 6.4.0? Вам также нужна версия libnice 0.1.13 – santoscadenas