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)流媒体播放器开发之ffmpeg log输出报错

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

  4. Windows phone 应用开发[3]-UI 设计

    本篇来谈谈Windows phone UI设计.这个有点让我痛苦的话题. 其实谈到移动平台的设计.原来没有实际接触Windows phone 产品开发工作时对UI设计这个概念不是特别强烈. 并没有感到 ...

  5. easyplayerpro 使用说明_EasyPlayerPro(Windows)流媒体播放器开发之ffmpeg log输出报错

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

  6. 如何写后端开发之接口设计文档

    一.接口的理解       当我们说到接口时,首先要分前端和后端,前端有Android.IOS.Js,后端定义返回值.参数.请求方式.协议等.    统A调用系统B,系统B调用系统C,像是把多个系统连 ...

  7. EasyPlayerPro安卓流媒体播放器实现Android H.265硬解码流程

    本文转自EasyDarwin团队成员John的博客:http://blog.csdn.net/jyt0551/article/details/74502627 H.265编码算法作为新一代视频编码标准 ...

  8. 【技术分享】Windows平台低延迟RTMP、RTSP播放器接口设计探讨

    背景 我们看过了太多介绍RTSP.RTMP播放相关的技术资料,大多接口设计简约,延迟和扩展能力也受到一定的局限,好多开发者希望我们能从接口设计的角度,大概介绍下大牛直播SDK关于RTMP.RTSP播放 ...

  9. 基于Android平台的流媒体播放器的设计

    from: 基于Android平台的流媒体播放器的设计 1引 言 随着移动通信技术和多媒体技术的迅速发展,融合手机.网络.多媒体技术为一体的视频监控技术也有了长足的进步,通过移动通信网络提供流媒体服务 ...

最新文章

  1. 0102 项目经理的精神病(二)完美
  2. 边缘检测算法及各自优缺点
  3. NAT的全然分析及其UDP穿透的全然解决方式
  4. java.util.NoSuchElementException: Unable to validate object
  5. c语言统计数据,数据统计
  6. 码云 Gitee 新增仓库访问之 IP 白名单功能
  7. WinhexV13.2汉化版
  8. 两个瓶子水怎样一样多_同事每天比我多睡两个小时!省下70万买了地铁站附近房子 杭州姑娘却感叹买房时一定是脑子进了水……...
  9. 在VC中动态加载ODBC的方法
  10. vue打包后获取不到数据_vue 打包后,如何修改接口地址?
  11. 中兴F412光猫超级密码破解、破解用户限制、关闭远程控制、恢复路由器拨号
  12. 别让腾讯“科技向善”太孤独!
  13. python机器学习案例系列教程——k均值聚类、k中心点聚类
  14. 细数那些不能直视的IE6BUG
  15. lbs的核心技术都有哪些?_直击现场 | 腾讯云“揭秘智慧出行核心技术与创新实践”活动完美落幕!...
  16. 【POJ 3041】Asteroids【网络流 —— 最小点覆盖】
  17. 通信总线协议二 :RS232和RS485
  18. 极路由php插件开发,极路由3刷机过程
  19. python微信红包代码_哄女朋友必备之微信自动发红包脚本(python+adb+androidviewclient)...
  20. 爱立信发布人体通信技术:最高传输10Mbps

热门文章

  1. 4种极大提升学习效率的工具
  2. 浅谈学校健康智能照明
  3. Apache Flink 1.12.0 升级说明
  4. 深度解析微信移动支付跨平台软件架构
  5. 在idea中使用ajax配置
  6. position 属性指定了元素的定位类型,查询车辆事故记录保险出险记录
  7. 业余浏览网:仪器厂家、硬件常用、色彩搭配
  8. Pytorch:多块GPU分布式|并行训练
  9. PNAS: 这些病毒是原生动物基因组中的偷渡者
  10. 【转】 Qt 学习资料 相关论坛网站