更新记录
1.1.4(2023-07-19)
- 移除多余 AAR
1.1.2(2023-07-14)
- 适配android 部分设备手势滑动亮度问题
1.1.1(2023-07-11)
- android 调整样式和整体风格对齐 iOS 稍微有点区别
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:6.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:11 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
播放器代码标签
<template>
<div>
<BenBen-VideoPlayer ref="video" videoEvent='videoGlobalEvent' style='width:390;height:210'
:data='configData' ></BenBen-VideoPlayer>
<button @click="play"> 播放 </button>
<button @click="pause"> 暂停 </button>
<button @click="seek"> 跳转 </button>
<button @click="updateResource"> 切换视频源 </button>
<button @click="full"> 全屏播放 </button>
<button @click="exitFull"> 退出全屏 </button>
<button @click="remove"> 移除播放器 </button>
<button @click="getDuration"> 获取时长</button>
<button @click="getIsFull"> 获取是否是全屏</button>
</div>
</template>
监听事件
let data = {
showBackButton: false, //返回按钮是否显示小屏幕
autoPlay: true, //自动播放 默认ture
data: [{
vid: '10086', //选填
title: 'airpods新品发布会',
index: '01', //选填
thumb: 'http://leyin.njzb.vip/uploads/images/21/b7162cc8c5f2f672f79eb79330609b.jpg',
url: 'https://media.w3.org/2010/05/sintel/trailer.mp4',
danmu:[
{
time: '10',
text: '随机增加一条弹幕'
},
{
time: '18',
text: '撒满族乡才能装招贤纳才吗,牛仔裤类型错了你看擦擦时空来电'
}
]
}]
};
const modal = uni.requireNativePlugin('modal');
export default {
data() {
return {
configData: data
}
},
onLoad() {
},
onReady() {
//事件监听
//0 小屏状态下返回按钮点击
//1 正在播放
//2 暂停
//3 准备播放
//4 大小屏切换
//5 播放结束
//6 跳转结束
//7 播放进度
//8 播放错误
var globalEvent = weex.requireModule('globalEvent');
globalEvent.addEventListener('videoGlobalEvent', function(e) {
let code = e.code;
let detail = e.detail;
// modal.toast({
// message: JSON.stringify(e),
// duration: 1.5
// });
if (code == 0) {
uni.navigateBack({
delta: 1,
animationType: 'pop-out',
animationDuration: 200
})
} else if (code == 1) {
} else if (code == 2) {
} else if (code == 3) {
}
})
},
调用事件
methods: {
play() {
this.$refs.video.play()
},
pause() {
this.$refs.video.pause()
},
seek() {
this.$refs.video.seek({
'time':15 //跳转事件 单位秒
})
},
updateResource() {
this.$refs.video.updateResource({
data: [{
vid: '10086',
title: '视频播放器component',
index: '02',
thumb: 'http://leyin.njzb.vip/uploads/images/b3/27b0ede30df691749d29f9797e0229.jpeg',
url: 'https://media.w3.org/2010/05/sintel/trailer.mp4',
danmu:[
{
time: '34',
text: '这是一个新的视频'
},
{
time: '55',
text: '苹果十大贫困没看你看你家后备箱打了卡大叔大妈那是'
}
]
}]
})
},
full() {
this.$refs.video.full()
},
remove() {
this.$refs.video.remove()
},
getDuration() {
this.$refs.video.getDuration({
},
(ret) => {
uni.showModal({
title: '提示',
content: "getDuration: " + JSON.stringify(ret)
})
}
)
},
getIsFull() {
this.$refs.video.getIsFull({
},
(ret) => {
uni.showModal({
title: '提示',
content: "getIsFull: " + JSON.stringify(ret)
})
}
)
}
}