设备网络SDK开发使用手册

NET_DVR_RealPlay_V30

实时预览。

LONG NET_DVR_RealPlay_V30(
  LONG                     lUserID,
  LPNET_DVR_CLIENTINFO     lpClientInfo,
  fRealDataCallBack_V30    cbRealDataCallBack,
  void                     *pUser,
  BOOL                     bBlocked
);

Parameters

lUserID
[in] NET_DVR_Login_V40等登录接口的返回值
lpClientInfo
[in] 预览参数
cbRealDataCallBack
[in] 码流数据回调函数
pUser
[in] 用户数据
bBlocked
[in] 请求码流过程是否阻塞:0-否;1-是

Callback Function

typedef void(CALLBACK *fRealDataCallBack_V30)(
  LONG      lRealHandle,
  DWORD     dwDataType,
  BYTE      *pBuffer,
  DWORD     dwBufSize,
  void      *pUser
);

Callback Function Parameters

lRealHandle
[out] 当前的预览句柄
dwDataType
[out] 数据类型
宏定义 宏定义值 含义
NET_DVR_SYSHEAD 1 系统头数据
NET_DVR_STREAMDATA 2 流数据(包括复合流或音视频分开的视频流数据)
NET_DVR_AUDIOSTREAMDATA 3 音频数据
NET_DVR_PRIVATE_DATA 112 私有数据,包括智能信息
pBuffer
[out] 存放数据的缓冲区指针
dwBufSize
[out] 缓冲区大小
pUser
[out] 用户数据

Return Values

-1表示失败,其他值作为NET_DVR_StopRealPlay等函数的句柄参数。接口返回失败请调用NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。

以下是该接口可能返回的错误值

错误类型 错误值 错误信息
NET_DVR_NOERROR 0 没有错误。
NET_DVR_PASSWORD_ERROR 1 用户名密码错误。注册时输入的用户名或者密码错误。
NET_DVR_NOINIT 3 SDK未初始化。
NET_DVR_OVER_MAXLINK 5 连接到设备的用户个数超过最大。
NET_DVR_NETWORK_FAIL_CONNECT 7 连接设备失败。设备不在线或网络原因引起的连接超时等。
NET_DVR_NETWORK_SEND_ERROR 8 向设备发送失败。
NET_DVR_NETWORK_RECV_ERROR 9 从设备接收数据失败。
NET_DVR_NETWORK_RECV_TIMEOUT 10 从设备接收数据超时。
NET_DVR_COMMANDTIMEOUT 14 设备命令执行超时。
NET_DVR_PARAMETER_ERROR 17 参数错误。SDK接口中给入的输入或输出参数为空。
NET_DVR_ALLOC_RESOURCE_ERROR 41 SDK资源分配错误。
NET_DVR_NOENOUGH_BUF 43 缓冲区太小。接收设备数据的缓冲区或存放图片缓冲区不足。
NET_DVR_CREATESOCKET_ERROR 44 创建SOCKET出错。
NET_DVR_USERNOTEXIST 47 用户不存在。注册的用户ID已注销或不可用。
NET_DVR_LOADPLAYERSDKFAILED 64 载入当前目录下Player Sdk出错。
NET_DVR_LOADPLAYERSDKPROC_ERROR 65 找不到Player Sdk中某个函数入口。
NET_DVR_LOADDSSDKFAILED 66 载入当前目录下DSsdk出错。
NET_DVR_BINDSOCKET_ERROR 72 绑定套接字失败。
NET_DVR_SOCKETCLOSE_ERROR 73 socket连接中断,此错误通常是由于连接中断或目的地不可达。
NET_DVR_IPCHAN_NOTALIVE 83 预览时外接IP通道不在线。
NET_DVR_RTSP_SDK_ERROR 84 加载标准协议通讯库StreamTransClient失败。
NET_DVR_CONVERT_SDK_ERROR 85 加载转封装库失败。

Remarks

该接口中可以设置当前预览操作是否阻塞(通过bBlocked参数设置)。若设为不阻塞,表示发起与设备的连接就认为连接成功,如果发生码流接收失败、播放失败等情况以预览异常的方式通知上层。在循环播放的时候可以减短停顿的时间,与NET_DVR_RealPlay处理一致。 若设为阻塞,表示直到播放操作完成才返回成功与否。
该接口中的回调函数可以置为空,这样该函数将不回调码流数据给用户,不过用户仍可以通过接口NET_DVR_SetRealDataCallBack或NET_DVR_SetStandardDataCallBack注册捕获码流数据的回调函数以捕获码流数据。

客户端异常离线时,设备端对取流连接的保持时间为10秒。

See Also

NET_DVR_StopRealPlay   NET_DVR_GetRealPlayerIndex   NET_DVR_ClientSetVideoEffect
NET_DVR_ClientGetVideoEffect    NET_DVR_RigisterDrawFun   NET_DVR_OpenSound    NET_DVR_OpenSoundShare
NET_DVR_CloseSoundShare    NET_DVR_Volume    NET_DVR_SetRealDataCallBack
NET_DVR_SetStandardDataCallBack   NET_DVR_SaveRealData   NET_DVR_StopSaveRealData

Reference Interface

该接口扩展源于
NET_DVR_RealPlay

扩展接口可见
NET_DVR_RealPlay_V40