接口协议适用平台:Windows

1. API接口函数定义

函数名称 说明
libEasyPlayerPro_Initialize 初始化SDK内部参数
libEasyPlayerPro_Deinitialize 反初始化SDK内部参数
libEasyPlayerPro_Create 初始化SDK内部参数
libEasyPlayerPro_Release 反初始化SDK内部参数
libEasyPlayerPro_OpenStream 打开一路码流,返回一个可用的通道ID
libEasyPlayerPro_CloseStream 关闭一路码流
libEasyPlayerPro_StartPlayStream 开始播放一路码流
libEasyPlayerPro_PutFrameData 外部输入帧数据
libEasyPlayerPro_ResetFrameQueue 清空缓冲区帧队列
libEasyPlayerPro_StopPlayStream 停止播放
libEasyPlayerPro_GetStreamInfo 获取媒体流信息
libEasyPlayerPro_SetPlayFrameCache 设置指定通道的缓存帧数(实时优先 or 流畅优先)
libEasyPlayerPro_GetPlayFrameCache 获取指定通道的缓存帧数
libEasyPlayerPro_ShowStatisticalInfo 显示统计信息,如分辨率,帧类型,码率…
libEasyPlayerPro_SetDecodeType 设置解码帧类型,是否仅解码关键帧
libEasyPlayerPro_SetVideoFlip 视频翻转(仅在显示格式为RGB24时有效)
libEasyPlayerPro_SetRenderRect 放大显示指定的视频区域
libEasyPlayerPro_SetScaleDisplay 按比例显示视频
libEasyPlayerPro_SetOverlayText 设置在视频上叠加文字
libEasyPlayerPro_ClearOverlayText 清空叠加文字
libEasyPlayerPro_SetPlaySpeed 设置播放速度(仅针对文件有效)
libEasyPlayerPro_GetPlaySpeed 获取播放速度
libEasyPlayerPro_StartRecording 对指定通道进行本地录像(mpg格式)
libEasyPlayerPro_StopRecording 停止对指定通道的本地录像
libEasyPlayerPro_SnapshotToFile 抓图
libEasyPlayerPro_SetElectronicZoomStartPoint 开始电子放大,设置电子放大起始点
libEasyPlayerPro_SetElectronicZoomEndPoint 设置电子放大结束点
libEasyPlayerPro_SetElectronicZoom 设置是否放大
libEasyPlayerPro_ResetElectronicZoom 复位电子放大参数
libEasyPlayerPro_InstantReplay_Start 开始即时回放
libEasyPlayerPro_InstantReplay_Pause 暂停即时回放
libEasyPlayerPro_InstantReplay_Resume 恢复即时回放
libEasyPlayerPro_InstantReplay_Stop 停止即时回放
libEasyPlayerPro_InstantReplay_Save 保存即时回放片断为录像文件
libEasyPlayerPro_StartPlaySound 开始播放声音
libEasyPlayerPro_StopPlaySound 停止播放声音
libEasyPlayerPro_SoundPlaying 获取指定通道是否在播放声音
libEasyPlayerPro_GetAudioOutputDeviceList 获取音频输出设备列表
libEasyPlayerPro_SetAudioOutputDeviceId 设置音频输出设备ID
libEasyPlayerPro_SetAudioOutputDeviceName 设置音频输出设备名称
libEasyPlayerPro_SetAudioVolume 设置音量
libEasyPlayerPro_GetAudioVolume 获取音量

###所有API的int类型返回值, 为0则表示成功,否则为失败;

##调用方式说明
libEasyPlayerPro 分为两种调用方式:

1. 使用libEasyPlayerPro_Initialize初始化,  在后面的所有调用中, PLAYER_HANDLE为NULL, 结束调用  libEasyPlayerPro_Deinitialize  
2. 使用libEasyPlayerPro_Create 创建一个PLAYER_HANDLE句柄, 在后面的所有调用中, 填上创建的句柄, 结束调用libEasyPlayerPro_Release

1.1 libEasyPlayerPro_Initialize

输入: int supportMaxChannel: 按需指定最大通道数,最大不能超过宏定义MAX_CHANNEL_NUM
输出: int
说明: 初始化SDK内部参数, 以该种方式初始化SDK后, 在所有的API调用中, PLAYER_HANDLE
都填为NULL;

1.2 libEasyPlayerPro_Deinitialize

输入: 无
输出: int 0为成功,其它值为失败
说明: 反初始化SDK内部参数

1.3 libEasyPlayerPro_Create

输入: PLAYER_HANDLE *handle: 初始化成功则为有效句柄
int supportMaxChannel: 按需指定最大通道数,最大不能超过宏定义MAX_CHANNEL_NUM
输出: int
说明: 初始化SDK内部参数, 以该种方式初始化SDK后, 在所有的API调用中, PLAYER_HANDLE
都填为返回的handle;

1.4 libEasyPlayerPro_Release

输入: PLAYER_HANDLE *handle: 调用libEasyPlayerPro_Create返回的handle
输出: int 0为成功,其它值为失败
说明: 反初始化SDK内部参数

1.5 libEasyPlayerPro_OpenStream

输入:
Handle: 为NULL或有效的playerHandle
channelType: 通道源类型
EASY_CHANNEL_SOURCE_TYPE_RTSP = 0, //源为RTSP(内置)
EASY_CHANNEL_SOURCE_TYPE_RTMP, //源为RTMP(内置)
EASY_CHANNEL_SOURCE_TYPE_HLS, //源为HLS(内置)
EASY_CHANNEL_SOURCE_TYPE_FILE, //源为本地文件(内置)
EASY_CHANNEL_SOURCE_TYPE_ENCODE_DATA, //源为外部的编码数据
EASY_CHANNEL_SOURCE_TYPE_DECODE_DATA, //源为外部的解码数据
url: 有效的源地址, 如: rtsp://192.168.1.100 rtmp://192.168.1.100/1
http://192.168.1.100/1 file://D:\1.mp4
rtpOverTcp: 仅针对rtsp有效, 1为tcp,否则为udp
mediaType: 媒体类型, 暂保留
EasyPlayerProCallBack: 回调函数
userPtr: 用户自定义指针
reconnection: 是否重连
heartbeatType: 心跳类型: 填0
queueSize: 缓冲队列大小, 需大于1024512
multiplex: 0x01:复用源,即打开同一个url时,到前端的连接只有一个;
0x00:不复用, 打开多少个url,就有多少个连接

输出: int: 如果成功,则返回一个有效的通道号; 如果失败,则返回小于0的值
说明: 以指定的连接方式, 打开一路码流, 并将编码数据进行回调;

1.6 libEasyPlayerPro_CloseStream

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id(libEasyPlayerPro_OpenStream返回值)
输出: int 0为成功,其它值为失败
说明: 关闭指定的通道

1.7 libEasyPlayerPro_StartPlayStream

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id(libEasyPlayerPro_OpenStream返回值)
HWND hWnd: 窗口句柄
如果为有效句柄, 则开启解码和显示;
如果为NULL, 则仅解码,不显示; 在回调时会回调解码后的帧数据;
RENDER_FORMAT renderFormat: 显示格式
unsigned char decodeType: 解码类型 – 暂无效
输出: int 0为成功,其它值为失败
说明: 开始播放指定的通道视频

1.8 libEasyPlayerPro_PutFrameData

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
int mediaType: 媒体类型 MEDIA_TYPE_VIDEO 或 MEDIA_TYPE_AUDIO
EASY_FRAME_INFO frameInfo: 帧信息
unsigned char
pbuf: 编码或解码数据
输出: int 0为成功,其它值为失败
说明: 送编码流到指定通道, 需配合libEasyPlayerPro_OpenStream中的 channelType==EASY_CHANNEL_SOURCE_TYPE_ENCODE_DATA或EASY_CHANNEL_SOURCE_TYPE_DECODE_DATA

1.9 libEasyPlayerPro_ResetFrameQueue

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 清空帧队列, 将从下一个收到的关键帧开始播放

1.10 libEasyPlayerPro_StopPlayStream

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 停止播放指定通道的音视频

1.11 libEasyPlayerPro_GetStreamInfo

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
EASY_MEDIA_INFO_T *pMediaInfo: 媒体信息
输出: int 0为成功,其它值为失败
说明: 获取指定通道的媒体信息. 该函数不能在libEasyPlayerPro_OpenStream之后立即调用,如果需要尽快的获取媒体信息,则通过回调获取;

1.12 libEasyPlayerPro_SetPlayFrameCache

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
int cache: 缓冲帧数 范围 1-10
输出: int 0为成功,其它值为失败
说明: 设置播放缓冲帧数, 越小实时性越好,越大越流畅, 可根据实际情况设置;

1.13 libEasyPlayerPro_GetPlayFrameCache

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: 缓冲帧数
说明: 获取指定通道的播放缓冲帧数

1.14 libEasyPlayerPro_ShowStatisticalInfo

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
unsigned char show: 显示统计信息
输出: int 0为成功,其它值为失败
说明: 设置是否显示统计信息,包括编码格式、分辨率、码率、当前缓存帧数等

1.15 libEasyPlayerPro_SetDecodeType

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
unsigned char decodeKeyframeOnly: 显示仅解码显示关键帧
输出: int 0为成功,其它值为失败
说明: 设置是否仅解码显示关键帧

1.16 libEasyPlayerPro_SetVideoFlip

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
unsigned char flip: 视频翻转显示
输出: int 0为成功,其它值为失败
说明: 视频翻转显示, 仅限于显示格式为RGB24;

1.17 libEasyPlayerPro_SetRenderRect

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
LPRECT lpRect: 分辨率坐标点
输出: int 0为成功,其它值为失败
说明: 设置当前视频从指定的坐标开始显示; 用于放大局部细节;

1.18 libEasyPlayerPro_SetScaleDisplay

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
unsigned char scaleDisplay: 0x00:铺满窗口 0x01:按比例显示*
COLORREF bkColor: 背景色
输出: int 0为成功,其它值为失败
说明: 按比例显示视频或铺满窗口; 当按比例显示时, 参数bkColor有效;

1.19 libEasyPlayerPro_SetOverlayText

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
const char *text: 设置叠加文字
输出: int 0为成功,其它值为失败
说明: 有窗口上显示自定义字符

1.20 libEasyPlayerPro_ClearOverlayText

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 清空自定义字符

1.21 libEasyPlayerPro_SetPlaySpeed

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
PLAY_SPEED_ENUM speed: 速度值
输出: int 0为成功,其它值为失败
说明: 设置速度值,仅针对文件有效, 正常,暂停,1x,2x,4x,8x,1/2,1/4,1/8

1.22 libEasyPlayerPro_GetPlaySpeed

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: PLAY_SPEED_ENUM speed: 速度值
说明: 获取当前播放速度

1.23 libEasyPlayerPro_StartRecording

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
const char foldername: 文件夹名称
const char
filename: 文件名称
unsigned int filesize: 录像文件大小 MB
int duration: 录像时长(second)
unsigned char preRecording : 0x01:预录 0x00:不预录
输出: int 0为成功,其它值为失败
说明: 开始本地录像, file和 duration为互斥关系, 当filesize大于0时,手动录像至指定文件大小则自动停止, 如果filesize为0时, 则duration为有效值,录满指定时长后自动停止;

1.24 libEasyPlayerPro_StopRecording

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 停止本地录像

1.25 libEasyPlayerPro_SnapshotToFile

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
unsigned char imageFormat: 图片格式 0:bmp 1:jpg,
char *filename : 文件名
unsigned char sync: 0:异步: 1:同步,
unsigned char useQueue: 1:使用队列 0:不使用队列
输出: int 0为成功,其它值为失败
说明: 抓拍图片到指定文件

1.26 libEasyPlayerPro_SetElectronicZoomStartPoint

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
float fXPercent: point.x百分比
float fYPercent: point.y百分比
unsigned char showBox: 0x01: 显示所画框 0x00:不显示
输出: int 0为成功,其它值为失败
说明: 设置电子放大起始点, fXPercent和fYPercent均为鼠标点相对于窗口的百分比;

1.27 libEasyPlayerPro_SetElectronicZoomEndPoint

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
float fXPercent: point.x百分比
float fYPercent: point.y百分比
输出: int 0为成功,其它值为失败
说明: 设置电子放大结束点, fXPercent和fYPercent均为鼠标点相对于窗口的百分比;

1.28 libEasyPlayerPro_SetElectronicZoom

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
int zoomIn: 1:放大显示 0:不放大
输出: int 0为成功,其它值为失败
说明: 设置电子放大标识

1.29 libEasyPlayerPro_ResetElectronicZoom

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 还原电子放大

1.30 libEasyPlayerPro_InstantReplay_Start

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 开始即时回放; 缓冲区的大小直接影响到即时回放, 缓冲区越大则即时回放时长越长;
还和相机的GOP相关;

1.31 libEasyPlayerPro_InstantReplay_Pause

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 暂停即时回放

1.32 libEasyPlayerPro_InstantReplay_Resume

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 恢复即时回放

1.33 libEasyPlayerPro_InstantReplay_Stop

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 停止即时回放

1.34 libEasyPlayerPro_InstantReplay_Save

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 保存即时回放视频片段为文件;

1.35 libEasyPlayerPro_StartPlaySound

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为成功,其它值为失败
说明: 开始播放指定通道声音;

1.36 libEasyPlayerPro_StopPlaySound

输入: PLAYER_HANDLE handle: NULL或有效handle
输出: int 0为成功,其它值为失败
说明: 停止播放声音;

1.37 libEasyPlayerPro_SoundPlaying

输入: PLAYER_HANDLE handle: NULL或有效handle
int channelId: 通道id
输出: int 0为播放中,<0非播放中;
说明: 获取当前播放状态;

1.38 libEasyPlayerPro_GetAudioOutputDeviceList

输入: PLAYER_HANDLE handle: NULL或有效handle
MIXER_DEVICE_INFO_T *devicelist: 设备列表
int
deviceNum: 设备数量
输出: int 0为成功,其它值为失败
说明: 获取音频输出设备列表

1.39 libEasyPlayerPro_SetAudioOutputDeviceId

输入: PLAYER_HANDLE handle: NULL或有效handle
int deviceId: 设备id
输出: int 0为成功,其它值为失败
说明: 设置音频播放设备ID, 即使用该设备进行声音播放;

1.40 libEasyPlayerPro_SetAudioOutputDeviceName

输入: PLAYER_HANDLE handle: NULL或有效handle
char *deviceName: 设备名称
输出: int 0为成功,其它值为失败
说明: 设置音频播放设备名称, 即使用该设备进行声音播放

1.41 libEasyPlayerPro_SetAudioVolume

输入: PLAYER_HANDLE handle: NULL或有效handle
int volume: 音量值 0 - 100
输出: int 0为成功,其它值为失败
说明: 设置音量

1.42 libEasyPlayerPro_GetAudioVolume

输入: PLAYER_HANDLE handle: NULL或有效handle
输出: 0 – 100的音量值
说明: 获取音量