关于c++:SkeyeExPlayerWindows开发之接口说明

33次阅读

共计 6629 个字符,预计需要花费 17 分钟才能阅读完成。

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 – 台标地位:1==leftttop 2==righttop 3==leftbottom 4==rightbottom
    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,因为有些参数是只读的。

正文完
 0