dkplayer

来自于:开发者立即使用

概述

dkplayer实现了安卓播放器功能,能播放大多数格式视频,支持在线、本地视频、点播播放功能。模块自带ui功能,包含了常用的快进、快退、亮度和音量的滑动加减、标题等功能。同时支持加载视频网速、进度的显示,支持将网络图片设置为播放器封面图。

特殊说明:使用此模块您需实现模块的生命周期处理 模块在win中使用方法

var dkplayer;
var isfull = false;
apiready = function() {
    dkplayer = api.require('dkplayer');
       api.addEventListener({
       name : 'keyback'
    }, function(ret, err) {
       goback();
    });
    api.addEventListener({
        name : 'pause'
    }, function(ret, err) {
        dkplayer.pause();
    });
    api.addEventListener({
        name : 'resume'
    }, function(ret, err) {
        dkplayer.resume();
    });
    api.addEventListener({
        name : 'viewdisappear'
    }, function(ret, err) {
        dkplayer.pause();
    });
}
function goback() {
    if (dkplayer.isFullScreen()) {
        if (dkplayer.isLock()) {
                api.toast({
                    msg : '请先解锁屏幕!',
                    global : true
                    });
        } else {
            api.setScreenOrientation({
               orientation : 'portrait_up'
            });
            dkplayer.stopFullScreen();
           }
    } else {
        dkplayer.removeOnVideoViewStateChangeListener();
        dkplayer.release();
        api.closeWin();
    }
}

open

打开播放器

open({params}, callback(ret))

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 备注:
  • 内部字段:
    {
      x: 0,   //(可选项)数字类型;公告视图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
      y: 0,   //(可选项)数字类型;公告视图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
      w: 0, //(可选项)数字类型;公告视图的宽度;默认:所属的 Window 或 Frame 的宽度
      h: 200  //(可选项)数字类型;公告视图的高度;默认:200
    }
    
    coverImg:
  • 类型:字符串对象
  • 描述:(可选项)播放器的封面
  • 备注:支持widget/fs/网络图片

url:

  • 类型:字符串对象
  • 描述:播放地址

title:

  • 类型:字符串对象
  • 描述:(可选项)播放器的标题
  • 备注:为空时显示传入的url

autoPlay

  • 类型:布尔
  • 描述:(可选项)是否自动播放视频
  • 默认值:true(自动播放)

enableFull

  • 类型:布尔
  • 描述:(可选项)是否全屏播放
  • 默认值:false(不全屏)
  • 备注:全屏播放时,传入的rect无效,只有小窗是有效

isLive

  • 类型:布尔
  • 描述:(可选项)是否是直播
  • 默认值:false(非直播)

animation

  • 类型:布尔
  • 描述:(可选项)打开播放器是否使用动画
  • 默认值:false(不使用)

fixed

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

fixedOn

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    playerState: 'open' / 'close'  //字符串类型,交互事件类型
}

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.open({
        rect : {
            x : 0,
            y : 0,
            w : 0,
            h : 200
                },
        url : "http://mov.bn.netease.com/open-movie/nos/flv/2017/01/03/SC8U8K7BC_hd.flv",
        coverImg : 'http://pic15.nipic.com/20110628/1369025_192645024000_2.jpg',
        animation : false,
        title : "你好狗狗",
        isLive : false,
        enableFull : false, //是否全屏
        autoPlay : false, //自动播放
        fixedOn : api.frameName,
        fixed : true
}, function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

Android系统

可提供的1.0.0及更高版本

setUrl

设置播放地址

setUrl({params})

params

url:

  • 类型:字符串 对象
  • 描述:播放地址

title:

  • 类型:字符串 对象
  • 描述:播放标题,默认为url地址

autoPlay

  • 类型:布尔
  • 描述:(可选项)是否自动播放视频
  • 默认值:true(自动播放)

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.setUrl({
    url : "https://tudou.com-l-tudou.com/20190405/16942_a3a1878c/index.m3u8",
    title : "测试地址",
    autoPlay:true
});

可用性

Android系统

可提供的1.0.0及更高版本

start

开始播放

reloadData({params})

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.start();

replay

重新播放

示例代码

var noticeView = api.require('noticeView');
dkplayer.replay();

seekTo

跳转到指定位置播放

seek:

  • 类型:数字类型
  • 描述:单位与getCurrentPosition返回一致
  • 示例代码

var dkplayer = api.require('dkplayer');
dkplayer.seekTo({
        seek : 50000
});

getCurrentPosition

获取播放进度

callback(ret)

ret:

  • 类型:数字
{
    CurrentPosition: 4555 
}

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.getCurrentPosition();

pause

暂停播放

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.pause();

resume

从暂停播放中恢复播放

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.resume();

release

停止播放并释放播放器

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.release();

startFullScreen

进入全屏

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.startFullScreen();

stopFullScreen

退出全屏(手动终止全屏,需指明屏幕方向,否则会是横屏状态,模块中点击小屏按钮,无需此类操作)

示例代码

var dkplayer = api.require('dkplayer');
api.setScreenOrientation({
        orientation : 'portrait_up'
});
dkplayer.stopFullScreen();

isFullScreen

是否处于全屏 (同步返回)

示例代码

var dkplayer = api.require('dkplayer');
alert(dkplayer.isFullScreen());

isLock

是否处于屏幕锁定状态 (同步返回)

示例代码

var dkplayer = api.require('dkplayer');
alert(dkplayer.isLock());

screenShot

视频截屏

callback(ret)

ret:

  • 类型:字符串
{
    savePath: '' // 返回截图保存的地址信息
}

err:

  • 类型:字符串
    {
      err: 'failed'
    }
    

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.screenShot(function(ret) {
    alert(JSON.stringify(ret)+JSON.stringify(err));
});

addOnVideoViewStateChangeListener

监听播放状态变化

callback(ret)

ret:

  • 类型:字符串
{
    playState: '' // 取值范围:
       //STATE_IDLE,静止状态,此时播放器还未进行初始化
       //STATE_PREPARING,正在准备播放
       //STATE_PREPARED,准备完成状态
       //STATE_PLAYING,正在播放状态
       //STATE_PAUSED,暂停播放状态
       //STATE_BUFFERING,缓冲状态
       //STATE_BUFFERED,缓冲结束状态
       //STATE_PLAYBACK_COMPLETED,播放结束状态
       //STATE_ERROR,播放错误


}

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.addOnVideoViewStateChangeListener(function(ret, err) {
    alert(JSON.stringify(ret));
});

removeOnVideoViewStateChangeListener

移除状态监听

示例代码

var dkplayer = api.require('dkplayer');
dkplayer.removeOnVideoViewStateChangeListener();