开发语言java
把海康威视 ISUP SDK linux demo的部分代码移到自己的项目里了
但在走到预览监听的时候,判断成功后没有进new FPREVIEW_NEWLINK_CB中,包括FPREVIEW_NEWLINK_CB预览数据回调参数也没有进去
在日志里没有看到函数里的打印输出,想知道这是怎么回事,有没有什么解决方法
public void startRealPlayListen() {
//预览监听
if (fPREVIEW_NEWLINK_CB == null) {
fPREVIEW_NEWLINK_CB = new FPREVIEW_NEWLINK_CB();
}
System.arraycopy(propertiesUtil.readValue("SmsServerListenIP").getBytes(), 0, struPreviewListen.struIPAdress.szIP, 0, propertiesUtil.readValue("SmsServerListenIP").length());
struPreviewListen.struIPAdress.wPort = Short.parseShort(propertiesUtil.readValue("SmsServerListenPort")); //流媒体服务器监听端口
struPreviewListen.fnNewLinkCB = fPREVIEW_NEWLINK_CB; //预览连接请求回调函数
struPreviewListen.pUser = null;
struPreviewListen.byLinkMode = 1; //0- TCP方式,1- UDP方式
struPreviewListen.write();
if (StreamHandle < 0) {
StreamHandle = hCEhomeStream.NET_ESTREAM_StartListenPreview(struPreviewListen);
if (StreamHandle == -1) {
System.out.println("NET_ESTREAM_StartListenPreview failed, error code:" + hCEhomeStream.NET_ESTREAM_GetLastError());
hCEhomeStream.NET_ESTREAM_Fini();
return;
} else {
String StreamListenInfo = new String(struPreviewListen.struIPAdress.szIP).trim() + "_" + struPreviewListen.struIPAdress.wPort;
System.out.println("流媒体服务:" + StreamListenInfo + ",NET_ESTREAM_StartListenPreview succeed");
}
}
}
FPREVIEW_NEWLINK_CB代码如下:
public class FPREVIEW_NEWLINK_CB implements HCISUPStream.PREVIEW_NEWLINK_CB {
@Override
public boolean invoke(int lLinkHandle, HCISUPStream.NET_EHOME_NEWLINK_CB_MSG pNewLinkCBMsg, Pointer pUserData) {
System.out.println("FPREVIEW_NEWLINK_CB callback");
log.info("FPREVIEW_NEWLINK_CB callback");
//预览数据回调参数
lPreviewHandle = lLinkHandle;
HCISUPStream.NET_EHOME_PREVIEW_DATA_CB_PARAM struDataCB = new HCISUPStream.NET_EHOME_PREVIEW_DATA_CB_PARAM();
if (fPREVIEW_DATA_CB == null) {
fPREVIEW_DATA_CB = new FPREVIEW_DATA_CB();
}
struDataCB.fnPreviewDataCB = fPREVIEW_DATA_CB;
if (!hCEhomeStream.NET_ESTREAM_SetPreviewDataCB(lLinkHandle, struDataCB)) {
System.out.println("NET_ESTREAM_SetPreviewDataCB failed err::" + hCEhomeStream.NET_ESTREAM_GetLastError());
return false;
}
return true;
}
}
调用的HCISUPStream.PREVIEW_NEWLINK_CB
public interface PREVIEW_NEWLINK_CB extends Callback {
public boolean invoke(int lLinkHandle, NET_EHOME_NEWLINK_CB_MSG pNewLinkCBMsg, Pointer pUserData);
}