From cf695c6db30c07e2ea9783f31660936787f67eb9 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期六, 21 十月 2023 14:06:56 +0800
Subject: [PATCH] 推送入栏
---
ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java | 75 ++++++++++++++++++++++++++++++++++++-
1 files changed, 72 insertions(+), 3 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java b/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java
index 46e6fc7..a397132 100644
--- a/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java
+++ b/ard-work/src/main/java/com/ruoyi/device/dhsdk/module/RealPlayModule.java
@@ -2,6 +2,10 @@
import com.ruoyi.device.dhsdk.lib.NetSDKLib;
import com.ruoyi.device.dhsdk.lib.ToolKits;
+import com.sun.jna.Pointer;
+
+import static com.ruoyi.device.dhsdk.module.LoginModule.netsdk;
+
/**
* 瀹炴椂棰勮鎺ュ彛瀹炵幇
* 涓昏鏈� 锛氬紑濮嬫媺娴併�佸仠姝㈡媺娴佸姛鑳�
@@ -15,7 +19,26 @@
* \endif
*/
public static NetSDKLib.LLong startRealPlay(NetSDKLib.LLong m_hLoginHandle, int channel, int stream) {
- NetSDKLib.LLong m_hPlayHandle = LoginModule.netsdk.CLIENT_RealPlayEx(m_hLoginHandle, channel, null, stream);
+ NetSDKLib.LLong m_hPlayHandle = netsdk.CLIENT_RealPlayEx(m_hLoginHandle, channel, null, stream);
+ if (m_hPlayHandle.longValue() == 0) {
+ System.err.println("寮�濮嬪疄鏃堕瑙堝け璐ワ紝閿欒鐮�" + ToolKits.getErrorCodePrint());
+ } else {
+ System.out.println("Success to start realplay");
+ // netsdk.CLIENT_SetRealDataCallBackEx(m_hPlayHandle, CbfRealDataCallBackEx.getInstance(),null, 0x0000001f);
+ }
+ return m_hPlayHandle;
+ }
+
+ public static NetSDKLib.LLong startRealPlay1(NetSDKLib.LLong m_hLoginHandle, int channel, String path) {
+ NetSDKLib.NET_IN_REALPLAY_BY_DATA_TYPE net_in_realplay_by_data_type = new NetSDKLib.NET_IN_REALPLAY_BY_DATA_TYPE();
+ net_in_realplay_by_data_type.nChannelID = channel;
+ net_in_realplay_by_data_type.hWnd = null;
+ net_in_realplay_by_data_type.rType = 0;
+ net_in_realplay_by_data_type.emDataType = NetSDKLib.EM_REAL_DATA_TYPE.EM_REAL_DATA_TYPE_MP4;
+ net_in_realplay_by_data_type.szSaveFileName = path;
+ //net_in_realplay_by_data_type.cbRealData = CbfRealDataCallBackEx.getInstance();
+ NetSDKLib.NET_OUT_REALPLAY_BY_DATA_TYPE net_out_realplay_by_data_type = new NetSDKLib.NET_OUT_REALPLAY_BY_DATA_TYPE();
+ NetSDKLib.LLong m_hPlayHandle = netsdk.CLIENT_RealPlayByDataType(m_hLoginHandle, net_in_realplay_by_data_type, net_out_realplay_by_data_type, 5000);
if (m_hPlayHandle.longValue() == 0) {
System.err.println("寮�濮嬪疄鏃堕瑙堝け璐ワ紝閿欒鐮�" + ToolKits.getErrorCodePrint());
} else {
@@ -35,10 +58,56 @@
if (m_hPlayHandle.longValue() == 0) {
return;
}
-
- boolean bRet = LoginModule.netsdk.CLIENT_StopRealPlayEx(m_hPlayHandle);
+ boolean bRet = netsdk.CLIENT_StopRealPlayEx(m_hPlayHandle);
if (bRet) {
m_hPlayHandle.setValue(0);
}
}
+
+ /**
+ * 瀹炴椂棰勮鏁版嵁鍥炶皟鍑芥暟--鎵╁睍(pBuffer鍐呭瓨鐢盨DK鍐呴儴鐢宠閲婃斁)
+ */
+ private static class CbfRealDataCallBackEx implements NetSDKLib.fRealDataCallBackEx {
+ private CbfRealDataCallBackEx() {
+ }
+
+ private static class CallBackHolder {
+ private static CbfRealDataCallBackEx instance = new CbfRealDataCallBackEx();
+ }
+
+ public static CbfRealDataCallBackEx getInstance() {
+ return CallBackHolder.instance;
+ }
+
+ @Override
+ public void invoke(NetSDKLib.LLong lRealHandle, int dwDataType, Pointer pBuffer,
+ int dwBufSize, int param, Pointer dwUser) {
+ int bInput = 0;
+ if (0 != lRealHandle.longValue()) {
+ switch (dwDataType) {
+ case 0:
+ System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓哄師濮嬮煶瑙嗛娣峰悎鏁版嵁");
+ break;
+ case 1:
+ //鏍囧噯瑙嗛鏁版嵁
+ System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓烘爣鍑嗚棰戞暟鎹�");
+ break;
+ case 2:
+ //yuv 鏁版嵁
+ System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓簓uv鏁版嵁");
+ break;
+ case 3:
+ //pcm 闊抽鏁版嵁
+ System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓洪煶棰戞暟鎹�");
+ break;
+ case 4:
+ //鍘熷闊抽鏁版嵁
+ System.out.println("鐮佹祦澶у皬涓�" + dwBufSize + "\n" + "鐮佹祦绫诲瀷涓哄師濮嬮煶棰戞暟鎹�");
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
}
--
Gitblit v1.9.3