EasyPlayerPro(windows)接口说明如下:

  1. EasyPlayerPro_Open

    说明:打开一个媒体流或者媒体文件进行播放,同时返回一个 player 对象指针

    参数说明:

    fileUrl - 文件路径(可以是网络流媒体的 URL)

    hWnd - Win32 的窗口句柄/其他平台渲染显示设备句柄

    返回值: Easy_PlayerPro_Handle 指针类型,指向 easyplayerpro 对象句柄

    声明如下:

    Easy_PlayerPro_Handle EasyPlayerPro_Open(char *fileUrl, EASY_HANDLE hWnd);

  2. EasyPlayerPro_Close

    说明: 关闭播放

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    声明如下:

    void EasyPlayerPro_Close(Easy_PlayerPro_Handle player);

  3. EasyPlayerPro_Play

    说明:开始播放,注意:媒体流或者文件打开后不需要调用此函数即开始播放,此函数在暂停、单步播放的时候调用,返回正常播放逻辑

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    声明如下:

    void EasyPlayerPro_Play(Easy_PlayerPro_Handle player);

  4. EasyPlayerPro_StepPlay

    说明:单步播放,一次播放一帧,调用EasyPlayerPro_Play返回正常播放

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    声明如下:

    void EasyPlayerPro_StepPlay(Easy_PlayerPro_Handle player);

  5. EasyPlayerPro_Pause

    说明:暂停播放,调用EasyPlayerPro_Play返回正常播放

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    声明如下:

    void EasyPlayerPro_Pause(Easy_PlayerPro_Handle player);

  6. EasyPlayerPro_Seek

    说明:播放进度跳转到指定位置

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    seek - 指定位置,以毫秒为单位

    声明如下:

    void EasyPlayerPro_Seek(Easy_PlayerPro_Handle player, EASY_VERYLONG seek);

  7. EasyPlayerPro_Resize

    说明:设置显示区域,有两种显示区域,视频显示区和视觉效果显示区

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    type - 指定区域类型 0 - video rect, 1 - audio visual effect rect

    x,y,width,height - 指定显示矩形区域

    函数声明:

    void EasyPlayerPro_Resize (Easy_PlayerPro_Handle player, int type, int x, int y, int width, int height);

  8. EasyPlayerPro_Snapshot 视频播放截图

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    filePath - 图片存放路径,以.xxx结束(xxx 目前只支持 jpeg 格式)

    width, height - 指定图片宽高,如果 <= 0 则默认使用视频宽高

    waittime - 是否等待截图完成 0 - 不等待,>0 等待超时 ms 为单位

    声明如下:

    int EasyPlayerPro_Snapshot(Easy_PlayerPro_Handle player, char *filePath, int width, int height, int waitTime);

  9. EasyPlayerPro_Record 视频播放录像

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    filePath - 图片存放路径,以.xxx结束(xxx 目前只支持 mp4 格式)

    duration - 指定图片宽高,如果 <= 0 则默认使用视频宽高

    声明如下:

    int EasyPlayerPro_Record (Easy_PlayerPro_Handle player, char *filePath, int duration );

  10. EasyPlayerPro_Record 视频播放停止录像

    参数说明:

    声明如下:

    int EasyPlayerPro_Stoprecord(Easy_PlayerPro_Handle player);

  11. EasyPlayerPro_SetLogo 设置台标/LOGO

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    bIsUse - 是否使用水印 1=启用 0=不启用

    ePos - 台标位置:1==leftttop 2==righttop 3==leftbottom 4==rightbottom

    eStyle - 水印的风格,见WATERMARK_ENTRY_TYPE声明

    x - 水印左上角位置x坐标

    y - 水印左上角位置y坐标

    width - 宽

    height - 高

    logopath - 水印图片路径

    声明如下:

    int EasyPlayerPro_SetLogo (void* hplayer, int bIsUse, int ePos, int eStyle,

    int x, int y, int width, int height, char* logopath);

  12. EasyPlayerPro_SetOSD 设置叠加字幕

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    bIsUse - 是否使用水印 1=启用 0=不启用 -1=删除

    nMoveType - 移动类型:0–固定位置,1–从左往右,2–从右往左,

    R,G,B - 字体颜色对应三个分量红绿蓝0-255

    x - 字幕显示左上角位置x坐标

    y - 字幕显示左上角位置y坐标

    weight - 字体权重,见如下声明

    // /* Font Weights */

    // #define FW_DONTCARE 0

    // #define FW_THIN 100

    // #define FW_EXTRALIGHT 200

    // #define FW_LIGHT 300

    // #define FW_NORMAL 400

    // #define FW_MEDIUM 500

    // #define FW_SEMIBOLD 600

    // #define FW_BOLD 700

    // #define FW_EXTRABOLD 800

    // #define FW_HEAVY 900

    // #define FW_ULTRALIGHT FW_EXTRALIGHT

    // #define FW_REGULAR FW_NORMAL

    // #define FW_DEMIBOLD FW_SEMIBOLD

    // #define FW_ULTRABOLD FW_EXTRABOLD

    // #define FW_BLACK FW_HEA

    width - 宽

    height - 高

    fontname - 字体名称,如“宋体”“楷体”“隶书”“华文行楷”……

    tittleContent - OSD显示内容

    声明如下:

    int EasyPlayerPro_SetOSD (void *hplayer, int bIsUse, int nMoveType, int R, int G, int B,

    int weight, int x, int y, int width, int height, char* fontname, char* tittleContent);

  13. EasyPlayerPro_Setparam 设置参数

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    param_id - 参数ID,见EASY_PARAM_ID定义

    param - 参数指针

    声明如下:

    void EasyPlayerPro_Setparam(Easy_PlayerPro_Handle player, EASY_PARAM_ID param_id, EASY_HANDLE param);

  14. EasyPlayerPro_Setparam 获取参数

    参数说明:

    player - 指向 EasyPlayerPro_Open 返回的 player 对象

    param_id - 参数ID,见EASY_PARAM_ID定义

    param - 参数指针

    声明如下:

    void EasyPlayerPro_Getparam(Easy_PlayerPro_Handle player, EASY_PARAM_ID param_id, EASY_HANDLE param);

设置和获取参数参考EASY_PARAM_ID结构,详细说明如下:

EASY_PARAM_MEDIA_DURATION 和 EASY_PARAM_MEDIA_POSITION

用于获取多媒体文件的总长度和当前播放位置(毫秒为单位)

LONGLONG total = 1, pos = 0;

EasyPlayerPro_Getparam(g_hplayer, EASY_PARAM_MEDIA_DURATION, &total);

EasyPlayerPro_Getparam(g_hplayer, EASY_PARAM_MEDIA_POSITION, &pos );

EASY_PARAM_VIDEO_WIDTH 和 EASY_PARAM_VIDEO_HEIGHT

用于获取多媒体文件的视频宽度和高度(像素为单位)

int vw = 0, vh = 0;

EasyPlayerPro_Getparam(g_hplayer, PARAM_VIDEO_WIDTH , &vw);

EasyPlayerPro_Getparam(g_hplayer, PARAM_VIDEO_HEIGHT, &vh);

EASY_PARAM_VIDEO_MODE

用于获取和设置视频显示方式,有两种方式可选:

1. EASY_VIDEO_MODE_LETTERBOX - 按比例缩放到显示区域

2. EASY_VIDEO_MODE_STRETCHED - 拉伸到显示区域

(注:视频显示区域由 EasyPlayerPro_Resize 进行设定)

int mode = 0;

EasyPlayerPro_Getparam(g_hplayer, EASY_PARAM_VIDEO_MODE, &mode);

mode = VIDEO_MODE_STRETCHED;

EasyPlayerPro_Setparam(g_hplayer, EASY_PARAM_VIDEO_MODE, &mode);

EASY_PARAM_AUDIO_VOLUME

用于设置播放音量,不同于系统音量,player 内部具有一个 -30dB 到 +12dB 的软件音量控制单元

音量范围:[-182, 73],-182 对应 -30dB,73 对应 +12dB

特殊值 :0 对应 0dB 增益,-255 对应静音,+255 对应最大增益

int volume = -0;

EasyPlayerPro_Setparam(g_hplayer, EASY_PARAM_AUDIO_VOLUME, &volume);

EASY_PARAM_PLAY_SPEED

用于设置播放速度,player 支持变速播放

int speed = 150;

EasyPlayerPro_Setparam(g_hplayer, EASY_PARAM_PLAY_SPEED, &speed);

参数 speed 为百分比速度,150 表示以 150% 进行播放

速度没有上限和下限,设置为 0 没有意义,内部会处理为 1%

播放速度的实际上限,由处理器的处理能力决定,超过处理器能力,播放会出现卡顿现象

EASY_PARAM_DECODE_THREAD_COUNT

用于设置视频解码线程数,可榨干 cpu 资源

int count = 6;

EasyPlayerPro_Setparam(g_hplayer, EASY_PARAM_DECODE_THREAD_COUNT, &count);

设置为 0 为将自动获取设备的 CPU 核心个数来计算和设置解码线程个数

设置为 1 为单线解码,设置为 >= 2 的值为多线程解码

并不是设置后一定就能运用上多线程解码,还要看对应的 decoder 是否支持多线程解码

一般情况下设置为 4 - 10 左右的值就能充分榨取 cpu 资源,保证播放的流畅性了

EASY_PARAM_VISUAL_EFFECT

用于指定视觉效果的类型,player 支持视觉效果,主要是对音频进行视觉效果的呈现

int mode = 0;

EasyPlayerPro_Getparam(g_hplayer, EASY_PARAM_VISUAL_EFFECT, &mode);

mode = EASY_AUDIO_VISUAL_EFFECT_WAVEFORM;

EasyPlayerPro_Setparam(g_hplayer, EASY_PARAM_VISUAL_EFFECT, &mode);

目前总共有三种视觉效果:

1. VISUAL_EFFECT_DISABLE - 关闭

2. VISUAL_EFFECT_WAVEFORM - 波形

3. VISUAL_EFFECT_SPECTRUM - 频谱

(注:视觉效果区域由 EasyPlayerPro_Resize 进行设定)

EASY_PARAM_AVSYNC_TIME_DIFF

用于设置 audio 和 video 的时间同步差值(毫秒为单位)

int diff = 100;

EasyPlayerPro_Setparam(g_hplayer, EASY_PARAM_AVSYNC_TIME_DIFF, &diff);

Eg: 设置为 100 后,音频将比视频快 100ms,设置为 -100 则慢 100ms

EASY_PARAM_PLAYER_CALLBACK

用于设置播放器事件回调函数,回调函数的原型定义如下:

typedef void (*EASY_PLAYERPRO_CALLBACK)(__int32 msg, __int64 param);

回调时的参数定义如下:

msg - PLAY_PROGRESS 播放进行中,PLAY_COMPLETED 播放完成

param - 当前播放进度,以毫秒为单位

EASY_PARAM_VDEV_RENDER_TYPE

用于设置视频渲染方式,目前有 EASY_VIDEO_RENDER_TYPE_GDI 和 EASY_VIDEO_RENDER_TYPE_D3D 两种可选

int mode = 0;

EasyPlayerPro_Getparam(g_hplayer, PARAM_VDEV_RENDER_TYPE, &mode);

mode = EASY_VIDEO_RENDER_TYPE_D3D;

EasyPlayerPro_Setparam(g_hplayer, PARAM_VDEV_RENDER_TYPE, &mode);

EASY_PARAM_AUDIO_STREAM_TOTAL

EASY_PARAM_VIDEO_STREAM_TOTAL

EASY_PARAM_SUBTITLE_STREAM_TOTAL

以上三个是只读的(Get),分别用于获取 audio, video, subtitle 的流总数

int streamCount = 0;

EasyPlayerPro_Getparam(g_hplayer, EASY_PARAM_AUDIO_STREAM_TOTAL, &streamCount);

EASY_PARAM_AUDIO_STREAM_CUR

EASY_PARAM_VIDEO_STREAM_CUR

EASY_PARAM_SUBTITLE_STREAM_CUR

以上三个参数,分别用于获取(Get)或设置(Set)当前播放的 audio, video, subtitle 流编号

EASY_PARAM_RECORD_TIME

EASY_PARAM_RECORD_PIECE_ID

以上三个是只读的(Get),分别用于获取录像的时间和当前切片的ID

float recordTime = 0;

EasyPlayerPro_Getparam(g_hplayer, EASY_PARAM_RECORD_TIME, &recordTime);

int recordPieceId = 0;

EasyPlayerPro_Getparam(g_hplayer, EASY_PARAM_RECORD_PIECE_ID, &recordPieceId);

所有的参数,都是可以 get 的,但并不是所有的参数都可以 set,因为有些参数是只读的。

关于EasyPlayerPro

EasyPlayerPro是一款全功能的流媒体播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP等多种流媒体协议播放、支持本地文件播放,支持本地抓拍、本地录像、播放旋转、多屏播放等多种功能特性,稳定、高效、可靠,支持Windows、Android、iOS三个平台,目前在多家教育、安防、行业型公司,都得到的应用,广受好评!

EasyPlayerPro:https://github.com/EasyDSS/EasyPlayerPro

点击链接加入群【EasyPlayer & EasyPlayerPro】:544917793

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyPlayerPro(Windows)流媒体播放器开发之接口设计的更多相关文章

  1. EasyPlayerPro(Windows)流媒体播放器开发之框架讲解

    EasyPlayerPro for Windows是基于ffmpeg进行开发的全功能播放器,开发过程中参考了很多开源的播放器,诸如vlc和ffplay等,其中最强大的莫过于vlc,但是鉴于vlc框架过 ...

  2. EasyPlayerPro(Windows)流媒体播放器开发之跨语言调用

    下面我们来讲解一下关于EasyPlayerPro接口的调用,主要分为C++和C#两种语言,C++也可以基于VC和QT进行开发,C++以VC MFC框架为例进行讲解,C#以Winform框架为例进行讲解 ...

  3. EasyPlayerPro(Windows)流媒体播放器功能介绍及应用场景

    EasyPLyerPro(Windows)经过为期一个月的开发已经基本完成,虽然目前仍存在一些小问题,但是总体功能还是趋于比较稳定和强大的,下面对其功能和应用场景做简要介绍. 一.EasyPlayer ...

  4. EasyPlayerPro(Windows)流媒体播放器开发之ffmpeg log输出报错

    EasyPlayerPro主要基于ffmpeg进行开发,在EasyPlayerPro开发过程中,曾遇到一个相对比较棘手的问题,该问题一般在播放不是很标准的流或者网络情况较差,容易出现丢帧的情况特别容易 ...

  5. EasyPlayerPro Windows流媒体播放器(RTSP/RTMP/HTTP/HLS/File/TCP/RTP/UDP都能播)发布啦

    EasyPlayerPro简介 EasyPlayerPro是一款全功能的流媒体播放器,支持RTSP.RTMP.HTTP.HLS.UDP.RTP.File等多种流媒体协议播放.支持本地文件播放,支持本地 ...

  6. EasyPlayerPro Windows播放器实时流进行本地缓冲区即时回放功能实现

    背景描述 参照国内视频监控行业监控软件,实现当前视频的即时回放功能,例如: 监控人员发现刚刚的某个视频点有可疑,就像录像回放一样,想倒回去看一下,但又不想切换到录像回放界面, 此处就体现即时回放的价值 ...

  7. libEasyPlayer RTSP windows播放器SDK API接口设计说明

    概述 libEasyPlayer实现对RTSP直播流进行实时采集和解码显示,稳定,高效,低延时:解码可采用intel硬件解码和软件解码两种方式,能实时进行录像和快照抓图,OSD叠加等功能. API接口 ...

  8. EasyPlayerPro windows播放器本地音频播放音量控制实现

    背景描述 作为一个播放器, 除了能播放视频和声音外,音量控制是绝对不能缺少的功能; 本文在音视频播放的基础上,增加对音量的控制: 实现流程 调用mixerGetDevCaps获取音频输出设备列表; 打 ...

  9. EasyPlayerPro Windows播放器进行本地对讲喊话音频采集功能实现

    需求 在安防行业应用中,除了在本地看到摄像机的视频和进行音频监听外,还有一个重要的功能,那就是对讲. EasyPlayerPro-win为了减轻二次开发者的工作量,将本地音频采集也进行了集成: 功能特 ...

随机推荐

  1. PHP二维数组排序研究

    前几天在项目中碰到了一个问题,在做商城的时候,要对一个店铺里所有商品进行价格排序,而且每一种商品都拥有多个规格,要取到所有商品中所有规格的最低价和最高价,发现PHP有很友好的函数帮助我们进行筛选. 使 ...

  2. js-Flexbox盒子布局

    这个年轻的时候,我在项目中其实很少用到: 现在老了,发现了他的好处,我就开始慢慢用到了: 但是其实我对他还是不熟悉的,很陌生,在此做个笔记,加油

  3. 解决redis在windows下使用start命令行调起时闪退的问题

    start powershell "redis-server.exe" "redis-server.exe" 改成redis-server.exe的绝对路径即可 ...

  4. Codeforces 746G(构造)

                                                                                                      G. ...

  5. ACM的奇计淫巧_输入挂

    什么是输入挂? 众所周知scanf比cin快的多,那么有没有比scanf更快的东西呢?答案就是输入挂,输入挂利用了告诉读取的函数getchar(),然后再人工处理成整数或浮点,比使用scanf快太多. ...

  6. Jenkins插件HTML Publisher Plugin的使用

    前提: 下载插件HTML Publisher plugin 一.安装 安装好HTML Publisher plugin之后,会在新建或者编辑项目时,在[增加构建后操作步骤]出现[Publish HTM ...

  7. Windows 远程桌面文件传输的方法

    实现电脑的远程连接以后,很多时候会需要进行主机间的文件传输,这个时候就可以用系统自带的远程连接里的磁盘映射来完成,详细如下: 远程桌面程序内置了映射磁盘的功能,通过这个功能可以实现远程登录服务器时自动 ...

  8. MFC中 创建基于CFormView的文档视图程序

    在MFC中可以创建多种类型的窗口程序,如对话框程序.单文档结构程序(非文档/视图结构).单文档(文档/视图结构)以及多文档视图结构程序等. 在编写一般的小工具时,我们的首选显然是对话框程序,不过基于对 ...

  9. NormalMap 贴图 [转]

    转载: http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.html   说起Normal Map(法线贴图),就 ...

  10. struts2.16中文乱码问题解决

    方法1.在struts.xml文件中添加<constant name="struts.i18n.encoding" value="GBK" /> 方 ...