更新记录

1.0(2022-08-05)

初始版本发布。


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


/ Title: XF-qiniuPlayer Description:XF-qiniuPlayer /

[playUrl](#a3) [stop](#a4) [full](#a5) [unfull](#a6) [sendDanmuList](#a7) [sendDanmu](#a8) [getCurrentPosition](#a9) [showTextLogo](#a10) [pause](#a11) [start](#a12)

概述

XF-qiniuPlayer封装了七牛播放器功能。

iOS需要需要配置支持横屏切换

"screenOrientation" : [
    //应用支持的屏幕方向
    "portrait-primary", //竖屏  
    "landscape-primary" //横屏,Home键在右侧  
], //end

模块调用

<XF-qiniuPlayerComponent ref='qiniuPlayer' 
    :dataList = "dataList"
    style="width:300;height:250" 
    @onBackClick="onBackClick"//返回按钮监听
    @onFull="onFull" //进入全屏监听
    @onUnFull="onUnFull"//退出全屏监听
    @onCompletion="onPlayEnd"//视频播放完成监听
    @Play="onPlayError"//视频播放错误监听
    @onDown="onDown"//下载按钮监听
    @onBuy="onBuy">//购买按钮监听
</XF-qiniuPlayerComponent>

参数说明:

dataList:

  • 类型:JSON型
  • 描述:(可选项)返回按钮监听。
    {
    url : '',//视频资源地址rtmp://、http://
    title : '',//视频标题
    isSmallOpenGesture : false,//窗口播放时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
    isMaxOpenGesture : false,//全屏时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
    isSmallImmerse : true,//窗口播放顶部控制栏是否增加固定高度,不和状态栏重合(显示:true ; 隐藏:false)
    isMaxImmerse: false,//全屏播放顶部控制栏是否增加固定高度,不和状态栏重合 (显示:true ; 隐藏:false)
    freeProcess : 0,//设置可免费播放时长,当免费播放完后触发播放异常事件,错误码5721
    isAutoPlay : true,//是否自动播放 (自动播放:true ; 不自动播放:false)
    isLoop : false,//是否循环播放 (循环播放:true ; 禁止循环播放:false)
    process : 0,//设置视频需要播放的时长
    options : {},//设置播放器内核配置项
    scalingMode : 1,//视频播放显示铺满模式(1:无缩放, 2:适应大小模式, 3:充满可视范围,可能会被裁剪, 4:缩放到充满视图)
    isShowDownload : true,//是否显示下载按钮 (显示:true;不显示:false)
    isSmallShowBack : true,//窗口时是否显示返回按钮 (显示:true;不显示:false)
    isSmallShowShare : true,//窗口时是否显示分析按钮 (显示:true;不显示:false)
    }

模块接口

playUrl

切换视频地址时调用。

playUrl({params}, callback(ret))

params

url:

  • 类型:字符串
  • 描述:(必填项)视频资源地址rtmp://、http://

title:

  • 类型:字符串
  • 描述:(可选项)不填时标题默认显示url地址

isSmallOpenGesture:

  • 类型:布尔型
  • 描述:(可选项)窗口播放时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
  • 默认值:false

isMaxOpenGesture:

  • 类型:布尔型
  • 描述:(可选项)全屏时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
  • 默认值:true

isSmallImmerse:

  • 类型:布尔型
  • 描述:(可选项)窗口播放顶部控制栏是否增加固定高度,不和状态栏重合(显示:true ; 隐藏:false)
  • 默认值:true

isMaxImmerse:

  • 类型:布尔型
  • 描述:(可选项)全屏播放顶部控制栏是否增加固定高度,不和状态栏重合 (显示:true ; 隐藏:false)
  • 默认值:false

freeProcess:

  • 类型:数字型
  • 描述:(必填项)设置可免费播放时长,当免费播放完后触发播放异常事件,错误码5721
  • 默认值:0

isAutoPlay:

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

isLoop:

  • 类型:布尔型
  • 描述:(可选项)是否循环播放 (循环播放:true ; 禁止循环播放:false)
  • 默认值:false

process:

  • 类型:数字型
  • 描述:(必填项)设置视频需要播放的时长
  • 默认值:0

options:

  • 类型:JSON型
  • 描述:(可选项)设置播放器内核配置项
{
    drmKey: [0X32, 0X30, 0X31, 0X39, 0X70, 0X6D, 0X71, 0X75, 0X61, 0X6E, 0X7A, 0X69, 0X40,0X29, 0X21, 0X28],
}

scalingMode:

  • 类型:布尔
  • 描述:(可选项)视频播放显示铺满模式(1:无缩放, 2:适应大小模式, 3:充满可视范围,可能会被裁剪, 4:缩放到充满视图)
  • 默认值:1(无缩放)

isShowDownload:

  • 类型:布尔型
  • 描述:(可选项)是否显示下载按钮 (显示:true;不显示:false)
  • 默认值:true

isSmallShowBack:

  • 类型:布尔型
  • 描述:(可选项)窗口时是否显示返回按钮 (显示:true;不显示:false)
  • 默认值:true

isSmallShowShare:

  • 类型:布尔型
  • 描述:(可选项)窗口时是否显示分析按钮 (显示:true;不显示:false)
  • 默认值:true

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
    msg : '',
}

示例代码

this.$refs.qiniuPlayer.playUrl({
    title: "test",
    url: 'http://lessons.pmquanzi.com/course1558694024408192.m3u8',
    options: {
        drmKey: [0X32, 0X30, 0X31, 0X39, 0X70, 0X6D, 0X71, 0X75, 0X61, 0X6E, 0X7A, 0X69, 0X40,0X29, 0X21, 0X28],
    },
    freeProcess: 100000,
}, function(ret) {
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

stop

停止播放

stop(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

this.$refs.qiniuPlayer.stop(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

full

全屏播放

full(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

this.$refs.qiniuPlayer.full(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

unfull

退出全屏

unfull(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

this.$refs.qiniuPlayer.unfull(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

sendDanmu

发送一条弹幕信息

sendDanmu({params}, callback(ret))

params

text:

  • 类型:字符串
  • 描述:(必填项)弹幕文字内容

color:

  • 类型:字符串
  • 描述:(可选项)弹幕文字显示颜色代码
  • 默认值:#FFFAFA

textSize:

  • 类型:数字型
  • 描述:(可选项)弹幕文字大小
  • 默认值:12

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

this.$refs.qiniuPlayer.sendDanmu({
    text : '测试2测试2测试2测试2',
    color : '#FF7F24'
},function(ret,err){
});

可用性

iOS、Android系统

可提供的3.1.6及更高版本

sendDanmuList

发送多条弹幕信息。

sendDanmuList({params}, callback(ret))

params

isLoop:

  • 类型:布尔型
  • 描述:(可选项)天际的全部数据是否循环播放(循环:true,不循环:false)
  • 默认值:false

data:

  • 类型:数组对象
  • 描述:(必填项)多条弹幕信息记录。
  • 内部字段:
[{
    text: '',   //(必填项)弹幕文字内容
    color: '',   //(可选项)弹幕文字显示颜色代码[默认值:#FFFAFA]
    textSize: 12 //(可选项)弹幕文字大小
}]

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

this.$refs.qiniuPlayer.sendDanmuList({
    data : [{
            text : '测试1',
            color : '#FF7F24'
        },{
            text : '测试2测试2测试2测试2',
            color : '#FF7F24'
        }],
}, function(ret, err) {
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getCurrentPosition

获取当前播放时长。

getCurrentPosition(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    currentPosition : 0,
}

示例代码

this.$refs.qiniuPlayer.getCurrentPosition(function(ret, err) {
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

showTextLogo

发送文字logo,防盗视频。

showTextLogo({params}, callback(ret))

params

step:

  • 类型:数字型
  • 描述:(可选项)循环间隔时间(秒)
  • 默认值:1

text:

  • 类型:字符串
  • 描述:(必填项)弹幕文字内容

color:

  • 类型:字符串
  • 描述:(可选项)弹幕文字显示颜色代码
  • 默认值:#FFFAFA

textSize:

  • 类型:数字型
  • 描述:(可选项)弹幕文字大小
  • 默认值:12

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

this.$refs.qiniuPlayer.showTextLogo({
    text : '测试1',
     color : '#FF7F24'
}, function(ret, err) {
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

pause

暂停播放。

pause(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

示例代码

this.$refs.qiniuPlayer.pause(function(ret, err) {
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

start

恢复播放。

start(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

示例代码

this.$refs.qiniuPlayer.start(function(ret, err) {
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 七牛 视频播放 SDK会采集数据,详情可以参考:https://developer.qiniu.com/pili/8027/sdk-privacy-policy

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问