接口协议适用平台: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的音量值
说明: 获取音量