將創世視頻嵌入到RCP程序中

經過三天的摸索,終於將創世的視頻嵌入到RCP程序中,關鍵的技術點有:

  1. 創世NrcapPlusSDK開發,使用兩個動態庫NrcappcSDK.dll和VARender.dll,NrcappcSDK.dll用於視頻數據的接收,VARender.dll用於視頻的顯示;
    1. NrcappcSDK.dll調用順序爲NcInitialize(初始化)、NcRegisterStreamReadCallback(設置回調函數)、NcOpen(登錄)、NcStartStreamCapture(開始捕獲數據),應該還有NcStopStreamCapture(停止捕獲)和NcClose(斷開連接);其它事件和雲臺控制暫時不用;
    2. VARender.dll調用順序爲VADR_Init(初始化)、VADR_SetVideoRect(設置顯示範圍)、VADR_SetPlayWnd(設置顯示窗口)、VADR_StartPreview(開始顯示),還有VADR_StopPreview(停止解碼顯示);
      1. Java調用dll動態庫,在網上找了一下,瞭解到java本身使用jni實現,但使用複雜,另有一些開源項目對此進一步封裝,簡化處理,開始使用JNative項目,實現了一些NrcappcSDK的調用過程,後來發現使用JNA更爲簡單方便,需要注意的是函數參數類型的對應關係,這裏給出NrcappcSDK.dll和VARender.dll的封裝定義:

        RCP程序中顯示視屏,在簡單的測試中,在一個Shell中能正確顯示視屏,但使用RCP的Composite卻不能顯示,在RCP程序開一個新的Display打開一個Shell卻不行,進一步使用Composite中的display打開一個Shell,總算可以顯示了,但總覺得這樣不能很好地融入整個程序中,倒像一個外部程序,打算先就這樣吧,突然想起第三方程序的界面都可以完全嵌入RCP程序中,這裏應該也可以吧!立即動手,加入代碼:
      2. 運行程序,視頻完美地嵌入RCP程序了!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章