SkeyeExPlayer(Windows)开发之接口说明

2023-05-16

SkeyeExPlayer(windows)接口说明如下:

  1. SkeyeExPlayer_Open
    说明:打开一个媒体流或者媒体文件进行播放,同时返回一个 player 对象指针
    参数说明:
    fileUrl - 文件路径(可以是网络流媒体的 URL)
    hWnd - Win32 的窗口句柄/其他平台渲染显示设备句柄
    返回值: Easy_PlayerPro_Handle 指针类型,指向 SkeyeExPlayer 对象句柄
    声明如下:
    SkeyeExPlayer_Handle SkeyeExPlayer_Open(char *fileUrl, EASY_HANDLE hWnd);

  2. SkeyeExPlayer_Close
    说明: 关闭播放
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    声明如下:
    void SkeyeExPlayer_Close(SkeyeExPlayer_Handle player);

  3. SkeyeExPlayer_Play
    说明:开始播放,注意:媒体流或者文件打开后不需要调用此函数即开始播放,此函数在暂停、单步播放的时候调用,返回正常播放逻辑
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    声明如下:
    void SkeyeExPlayer_Play(SkeyeExPlayer_Handle player);

  4. SkeyeExPlayer_StepPlay
    说明:单步播放,一次播放一帧,调用SkeyeExPlayer_Play返回正常播放
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    声明如下:
    void SkeyeExPlayer_StepPlay(SkeyeExPlayer_Handle player);

  5. SkeyeExPlayer_Pause
    说明:暂停播放,调用SkeyeExPlayer_Play返回正常播放
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    声明如下:
    void SkeyeExPlayer_Pause(SkeyeExPlayer_Handle player);

  6. SkeyeExPlayer_Seek
    说明:播放进度跳转到指定位置
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    seek - 指定位置,以毫秒为单位
    声明如下:
    void SkeyeExPlayer_Seek(SkeyeExPlayer_Handle player, EASY_VERYLONG seek);

  7. SkeyeExPlayer_Resize
    说明:设置显示区域,有两种显示区域,视频显示区和视觉效果显示区
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    type - 指定区域类型 0 - video rect, 1 - audio visual effect rect
    x,y,width,height - 指定显示矩形区域
    函数声明:
    void SkeyeExPlayer_Resize (SkeyeExPlayer_Handle player, int type, int x, int y, int width, int height);

  8. SkeyeExPlayer_Snapshot 视频播放截图
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    filePath - 图片存放路径,以.xxx结束(xxx 目前只支持 jpeg 格式)
    width, height - 指定图片宽高,如果 <= 0 则默认使用视频宽高
    waittime - 是否等待截图完成 0 - 不等待,>0 等待超时 ms 为单位
    声明如下:
    int SkeyeExPlayer_Snapshot(SkeyeExPlayer_Handle player, char *filePath, int width, int height, int waitTime);

  9. SkeyeExPlayer_Record 视频播放录像
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    filePath - 图片存放路径,以.xxx结束(xxx 目前只支持 mp4 格式)
    duration - 指定图片宽高,如果 <= 0 则默认使用视频宽高
    声明如下:
    int SkeyeExPlayer_Record (SkeyeExPlayer_Handle player, char *filePath, int duration );

  10. SkeyeExPlayer_Record   视频播放停止录像
    

    参数说明:
    声明如下:
    int SkeyeExPlayer_Stoprecord(SkeyeExPlayer_Handle player);

  11. SkeyeExPlayer_SetLogo 设置台标/LOGO
    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    bIsUse - 是否使用水印 1=启用 0=不启用
    ePos - 台标位置:1leftttop 2righttop 3leftbottom 4rightbottom
    eStyle - 水印的风格,见WATERMARK_ENTRY_TYPE声明
    x - 水印左上角位置x坐标
    y - 水印左上角位置y坐标
    width - 宽
    height - 高
    logopath - 水印图片路径
    声明如下:
    int SkeyeExPlayer_SetLogo (void* hplayer, int bIsUse, int ePos, int eStyle,
    int x, int y, int width, int height, char* logopath);

  12. SkeyeExPlayer_SetOSD  设置叠加字幕
    

    参数说明:
    player - 指向 SkeyeExPlayer_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 SkeyeExPlayer_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. SkeyeExPlayer_Setparam 设置参数
    

    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    param_id - 参数ID,见EASY_PARAM_ID定义
    param - 参数指针
    声明如下:
    void SkeyeExPlayer_Setparam(SkeyeExPlayer_Handle player, EASY_PARAM_ID param_id, EASY_HANDLE param);

  14. SkeyeExPlayer_Setparam 获取参数
    

    参数说明:
    player - 指向 SkeyeExPlayer_Open 返回的 player 对象
    param_id - 参数ID,见EASY_PARAM_ID定义
    param - 参数指针
    声明如下:
    void SkeyeExPlayer_Getparam(SkeyeExPlayer_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;
SkeyeExPlayer_Getparam(g_hplayer, EASY_PARAM_MEDIA_DURATION, &total);
SkeyeExPlayer_Getparam(g_hplayer, EASY_PARAM_MEDIA_POSITION, &pos );

EASY_PARAM_VIDEO_WIDTH 和 EASY_PARAM_VIDEO_HEIGHT
用于获取多媒体文件的视频宽度和高度(像素为单位)
int vw = 0, vh = 0;
SkeyeExPlayer_Getparam(g_hplayer, PARAM_VIDEO_WIDTH , &vw);
SkeyeExPlayer_Getparam(g_hplayer, PARAM_VIDEO_HEIGHT, &vh);

EASY_PARAM_VIDEO_MODE
用于获取和设置视频显示方式,有两种方式可选:
1. EASY_VIDEO_MODE_LETTERBOX - 按比例缩放到显示区域
2. EASY_VIDEO_MODE_STRETCHED - 拉伸到显示区域
(注:视频显示区域由 SkeyeExPlayer_Resize 进行设定)
int mode = 0;
SkeyeExPlayer_Getparam(g_hplayer, EASY_PARAM_VIDEO_MODE, &mode);
mode = VIDEO_MODE_STRETCHED;
SkeyeExPlayer_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;
SkeyeExPlayer_Setparam(g_hplayer, EASY_PARAM_AUDIO_VOLUME, &volume);

EASY_PARAM_PLAY_SPEED
用于设置播放速度,player 支持变速播放
int speed = 150;
SkeyeExPlayer_Setparam(g_hplayer, EASY_PARAM_PLAY_SPEED, &speed);
参数 speed 为百分比速度,150 表示以 150% 进行播放
速度没有上限和下限,设置为 0 没有意义,内部会处理为 1%
播放速度的实际上限,由处理器的处理能力决定,超过处理器能力,播放会出现卡顿现象

EASY_PARAM_DECODE_THREAD_COUNT
用于设置视频解码线程数,可榨干 cpu 资源
int count = 6;
SkeyeExPlayer_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;
SkeyeExPlayer_Getparam(g_hplayer, EASY_PARAM_VISUAL_EFFECT, &mode);
mode = EASY_AUDIO_VISUAL_EFFECT_WAVEFORM;
SkeyeExPlayer_Setparam(g_hplayer, EASY_PARAM_VISUAL_EFFECT, &mode);
目前总共有三种视觉效果:
1. VISUAL_EFFECT_DISABLE - 关闭
2. VISUAL_EFFECT_WAVEFORM - 波形
3. VISUAL_EFFECT_SPECTRUM - 频谱
(注:视觉效果区域由 SkeyeExPlayer_Resize 进行设定)

EASY_PARAM_AVSYNC_TIME_DIFF
用于设置 audio 和 video 的时间同步差值(毫秒为单位)
int diff = 100;
SkeyeExPlayer_Setparam(g_hplayer, EASY_PARAM_AVSYNC_TIME_DIFF, &diff);
Eg: 设置为 100 后,音频将比视频快 100ms,设置为 -100 则慢 100ms

EASY_PARAM_PLAYER_CALLBACK
用于设置播放器事件回调函数,回调函数的原型定义如下:
typedef void (*SkeyeExPlayer_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;
SkeyeExPlayer_Getparam(g_hplayer, PARAM_VDEV_RENDER_TYPE, &mode);
mode = EASY_VIDEO_RENDER_TYPE_D3D;
SkeyeExPlayer_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;
SkeyeExPlayer_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;
SkeyeExPlayer_Getparam(g_hplayer, EASY_PARAM_RECORD_TIME, &recordTime);
int recordPieceId = 0;
SkeyeExPlayer_Getparam(g_hplayer, EASY_PARAM_RECORD_PIECE_ID, &recordPieceId);

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SkeyeExPlayer(Windows)开发之接口说明 的相关文章

随机推荐

  • ubuntu C++ 和windows C# socket TCP通信

    TCP客户端代码 windows C https www cnblogs com sunev archive 2012 08 05 2604189 html using System using System Net using Syste
  • 多进程和多线程的优缺点

    在Linux下编程多用多进程编程少用多线程编程 IBM有个家伙做了个测试 xff0c 发现切换线程context的时候 xff0c windows比linux快一倍多 进出最快的锁 xff08 windows2k的 critical sec
  • 【C语言】链表及单链表基本操作

    1 什么是链表 xff1f 链表的分类 xff1f 链表是一种物理存储结构上非连续 非顺序的存储结构 xff0c 数据元素的逻辑顺序是通过链表中的指针链接次序实现的 数据结构中 xff1a 2 链表的分类 共有8种链表结构 3 单链表的基本
  • 14串聚合物锂电池保护板和电路图(带均衡功能)

    转载自 xff1a http bbs mydigit cn read php tid 61 746827 之前发过14串三元锂组装的帖子 xff0c 有坛友对保护板感兴趣 xff0c 还有的说串联充电 xff0c 早死早超生 xff0c 哈
  • HTTP的长连接和短连接

    一 什么是长连接 HTTP1 1规定了默认保持长连接 xff08 HTTP persistent connection xff0c 也有翻译为持久连接 xff09 xff0c 数据传输完成了保持TCP连接不断开 xff08 不发RST包 不
  • libcurl库的异步用法

    multi接口的使用会比easy 接口稍微复杂点 xff0c 毕竟multi接口是依赖easy接口的 xff0c 首先粗略的讲下其使用流程 xff1a curl multi init初始化一个multi curl对象 xff0c 为了同时进
  • 在ubantu16.04 配置ROS开发realsense435功能包

    本文主要对intel的一款实感相机realsense435 进行配置 xff0c 将ROS对realsense435支持的功能包进行安装 一 安装SDK 1 简要介绍 鉴于自己安装过程中出现的问题 xff0c 现在在安装之前先确认几件事情
  • 提高C++程序运行效率,减少运行时间的方法

    大致方法 xff1a 1 优化业务逻辑 xff0c 尽量少做事情 2 减少网络访问 xff0c IO等对外操作 3 如果有数据库 xff0c 优化SQL和数据库结构 4 优化算法 xff0c 比如冒泡排序改成快排等 5 优化代码的编写 这个
  • 常量引用、非常量引用、临时对象

    转载自 xff1a https www cnblogs com littleant archive 2012 08 01 2618846 html https www cnblogs com BensonLaur p 5234555 htm
  • 字符串string中“\0“与‘\0‘的打印、拼接问题

    1 34 0 34 为字符串长度为0的字符串指针 xff0c 它与 34 34 等价 2 打印 34 0 34 与 39 0 39 相同 xff0c cout输出时都会显示为空 39 0 39 在string的初始化和拼接中size大小的不
  • Direct3D的初始化

    1 获取接口IDirect3D9 的指针 xff0c 该接口用于获取系统中物理硬件设备的信息并创建接口IDirect3DDevice9 xff0c 该接口是一个C 43 43 对象 xff0c 代表了我们用来显示3D图形的物理硬件设备 使用
  • 绘制流水线

    顶点结构与顶点格式 在Direct3D中 xff0c 顶点除了包含空间信息外 xff0c 还可以包含其他的附加属性 xff0c 例如顶点可以有颜色属性 xff0c 也可以有法线属性 xff0c Direct3D赋予了我们自定义顶点格式的自由
  • Direct3D中的绘制

    顶点缓存与索引缓存 一个顶点缓存是一个包含顶点数据的连续内存空间 xff0c 一个索引缓存是一个包含索引数据的连续内存空间 xff0c 之所以使用顶点缓存和索引缓存而非数组来存储数据 xff0c 是因为顶点缓存和索引缓存可以被放置在显存 中
  • 结构体内的指针

    利用 结构体对象 对 结构体内的指针 赋值 include 34 stdafx h 34 include lt string h gt include lt stdlib h gt struct Student char name 从节省空
  • 自制廉价难度低性能较好的锂电充电器(转)

    转载自 xff1a http www geek workshop com thread 53 1 1 html 自制廉价难度低性能较好的锂电充电器 附电压平衡器第一张 电路全图 这张有点模糊 别急 先看大致位置 等一下再分区介绍 这一部份
  • 子类调用父类中的友元函数

    由于友元函数并非类成员 xff0c 因此不能被继承 xff0c 在某种需求下 xff0c 可能希望子类的友元函数能够使用父类中的友元函数 为此可以通过强制类型转换 xff0c 将子类的指针或是引用强转为父类的引用或是指针 xff0c 然后使
  • 判断一个字符是否是十六进制

    判断一个字符是否是十六进制 十六进制 xff08 hexadecimal xff09 是计算机中数据的一种表示方法 xff0c 意思是逢十六进一 十六进制数以16为基数 xff0c 采用的数码是0 1 2 3 4 5 6 7 8 9 A B
  • 库文件、静态库(lib)与动态库(dll)的生成与使用

    静态库 程序编译一般需经预处理 编译 汇编和链接几个步骤 在应用中 xff0c 有一些公共代码是需要反复使用 xff0c 就把这些代码编译为 库 文件 xff1b 在链接步骤中 xff0c 连接器将从库文件取得所需的代码 xff0c 复制到
  • 句柄Handle的含义及使用

    句柄Handle的含义及使用 1 句柄 xff1a 头文件 xff1a winnt h 也可以使用windows h头文件 xff0c 如果winnt h和windows h一起包含时 xff0c 如果先后顺序不当 xff0c 会造成错误
  • SkeyeExPlayer(Windows)开发之接口说明

    SkeyeExPlayer xff08 windows xff09 接口说明如下 xff1a SkeyeExPlayer Open 说明 xff1a 打开一个媒体流或者媒体文件进行播放 xff0c 同时返回一个 player 对象指针 参数