设备网络SDK开发使用手册

NET_DVR_PlayBackControl_V40

控制录像回放的状态。

BOOL NET_DVR_PlayBackControl_V40(
  LONG      lPlayHandle,
  DWORD     dwControlCode,
  LPVOID    lpInBuffer,
  DWORD     dwInLen,
  LPVOID    lpOutBuffer,
  DWORD     *lpOutLen
);

Parameters

lPlayHandle
[in] 播放句柄,NET_DVR_PlayBackByName、NET_DVR_PlayBackReverseByName或NET_DVR_PlayBackByTime_V40、NET_DVR_PlayBackReverseByTime_V40的返回值
dwControlCode
[in] 控制录像回放状态命令,见下表
宏定义 宏定义值 含义
NET_DVR_PLAYSTART 1 开始播放
NET_DVR_PLAYPAUSE 3 暂停播放
NET_DVR_PLAYRESTART 4 恢复播放(在暂停后调用将恢复暂停前的速度播放)
NET_DVR_PLAYFAST 5 快放
NET_DVR_PLAYSLOW 6 慢放
NET_DVR_PLAYNORMAL 7 正常速度播放(快放或者慢放时调用将恢复单倍速度播放)
NET_DVR_PLAYFRAME 8 单帧放(恢复正常回放使用NET_DVR_PLAYNORMAL命令)
NET_DVR_PLAYSTARTAUDIO 9 打开声音
NET_DVR_PLAYSTOPAUDIO 10 关闭声音
NET_DVR_PLAYAUDIOVOLUME 11 调节音量,取值范围[0,0xffff]
NET_DVR_PLAYSETPOS 12 改变文件回放的进度
NET_DVR_PLAYGETPOS 13 获取按文件或者按时间回放的进度
NET_DVR_PLAYGETTIME 14 获取当前已经播放的时间(按文件回放的时候有效)
NET_DVR_PLAYGETFRAME 15 获取当前已经播放的帧数(按文件回放的时候有效,倒放不支持)
NET_DVR_GETTOTALFRAMES 16 获取当前播放文件总的帧数(按文件回放的时候有效,倒放不支持)
NET_DVR_GETTOTALTIME 17 获取当前播放文件总的时间(按文件回放的时候有效)
NET_DVR_THROWBFRAME 20 丢B帧
NET_DVR_SETSPEED 24 设置码流速度,速度单位:kbps,最小为256kbps,最大为设备带宽
NET_DVR_KEEPALIVE 25 保持与设备的心跳(如果回调阻塞,建议2秒发送一次)
NET_DVR_PLAYSETTIME 26 按绝对时间定位
NET_DVR_PLAYGETTOTALLEN 27 获取按时间回放对应时间段内的所有文件的总长度
NET_DVR_PLAY_FORWARD 29 倒放切换为正放
NET_DVR_PLAY_REVERSE 30 正放切换为倒放
NET_DVR_SET_TRANS_TYPE 32 设置转封装类型
NET_DVR_PLAY_CONVERT 33 回放转码
NET_DVR_START_DRAWFRAME 34 开始抽帧回放
NET_DVR_STOP_DRAWFRAME 35 停止抽帧回放
NET_DVR_CHANGEWNDRESOLUTION 36 窗口大小改变时下发通知给播放库(仅Linux版本适用)
NET_DVR_VOD_DRAG_ING 37 拖动中
NET_DVR_VOD_DRAG_END 38 拖动结束
lpInBuffer
[in] 指向输入参数的指针
dwInLen
[in] 输入参数的长度(抽帧回放控制时必须输入正确的长度,当dwInLen为NET_DVR_TIME_EX结构体大小时,按NET_DVR_TIME_EX处理;当dwInLen为NET_DVR_VOD_DRAWFRAME_PARA结构体大小时,按NET_DVR_VOD_DRAWFRAME_PARA处理)
lpOutBuffer
[out] 指向输出参数的指针
lpOutLen
[out] 输出参数的长度

Return Values

TRUE表示成功,FALSE表示失败。接口返回失败请调用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_NOSUPPORT 23 设备不支持。
NET_DVR_NOSPECFILE 33 回放时设备没有指定的文件。
NET_DVR_ALLOC_RESOURCE_ERROR 41 SDK资源分配错误。
NET_DVR_NOENOUGH_BUF 43 缓冲区太小。接收设备数据的缓冲区或存放图片缓冲区不足。
NET_DVR_CREATESOCKET_ERROR 44 创建SOCKET出错。
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连接中断,此错误通常是由于连接中断或目的地不可达。

Remarks

  • 该接口中的第三个参数是否需要输入数值与控制命令有关,详见下表所示。
        当控制命令是开始播放(即NET_DVR_PLAYSTART)时,第三个参数的值表示播放当前文件的偏移量,若该值为0表示从文件的起始位置播放,若该值不为0则表示断网续传的文件位置(Byte)。
  • 状态命令宏定义 状态命令说明 lpInBuf lpOutBuf
    NET_DVR_PLAYSTART 开始播放 一个4字节整型的偏移量,通过该偏移量可以实现断网续传功能
    NET_DVR_PLAYSETPOS 改变回放的进度(按文件回放有效) 一个4字节整型的进度值(0-100)
    NET_DVR_PLAYGETPOS 获取回放的进度 一个4字节整型的进度值,0~100表示正常的进度值(倒放时进度为100~0),大于100的值表示回放异常。按时间回放时,只支持获取进度值:0、100(结束)、200(异常)
    NET_DVR_PLAYGETTIME 获取当前已播放的时间(按文件回放有效,倒放时不支持) 一个4字节整型的时间值
    NET_DVR_PLAYGETFRAME 获取当前已播放的帧数(按文件回放有效,倒放时不支持) 一个4字节整型的帧数值
    NET_DVR_GETTOTALFRAMES 获取当前播放文件总的帧数(按文件回放有效) 一个4字节整型的帧数值
    NET_DVR_GETTOTALTIME 获取当前播放文件总的时间(按文件回放有效) 一个4字节整型的时间值
    NET_DVR_THROWBFRAME 丢B帧 一个4字节整型的B帧个数
    NET_DVR_SETSPEED 设置码流速度 一个4字节整型的速度值
    NET_DVR_PLAYSETTIME 按绝对时间定位回放 NET_DVR_TIME
    NET_DVR_PLAYGETTOTALLEN 获取按时间回放对应时间段内的所有文件的总长度 一个8字节整型的长度值(单位字节)
    NET_DVR_PLAY_FORWARD 倒放切换为正放 应用层解码时需在lpInBuffer输入NET_DVR_TIME表示当前的播放时间,SDK解码可将lpInBuffer置为NULL
    NET_DVR_PLAY_REVERSE 正放切换为倒放 应用层解码时需在lpInBuffer输入NET_DVR_TIME表示当前的播放时间,SDK解码可将lpInBuffer置为NULL
    NET_DVR_SET_TRANS_TYPE 设置转封装类型(需在NET_DVR_PLAYSTART之前调用) 一个4字节整型的封装类型:1-PS,2-TS,3-RTP,5-MP4(3GPP,仅按文件回放支持)
    NET_DVR_PLAY_CONVERT 回放转码(需在NET_DVR_PLAYSTART之前调用) NET_DVR_COMPRESSION_INFO_V30
    NET_DVR_START_DRAWFRAME 开始抽帧回放 NET_DVR_VOD_DRAWFRAME_PARANET_DVR_TIME_EX
    NET_DVR_STOP_DRAWFRAME 停止抽帧回放 NET_DVR_TIME_EX
    NET_DVR_CHANGEWNDRESOLUTION 窗口大小改变时下发通知给播放库(仅Linux版本适用)
    NET_DVR_VOD_DRAG_ING 拖动中 NET_DVR_TIME_EX
    NET_DVR_VOD_DRAG_END 拖动结束 NET_DVR_TIME_EX

    Remarks

    See Also

    NET_DVR_PlayBackByName  NET_DVR_PlayBackByTime_V40

    NET_DVR_PlayBackReverseByName  NET_DVR_PlayBackReverseByTime_V40

    Reference Interface

    该接口扩展源于

    NET_DVR_PlayBackControl