127 lines
3.2 KiB
JavaScript
127 lines
3.2 KiB
JavaScript
const utils = require("../../utils/utils");
|
||
const module = require("../index.js");
|
||
const SportHandLift = require("../sports/sport-hand-lift");
|
||
const AiSport = requirePlugin("aiSport");
|
||
const humanDetection = AiSport.humanDetection;
|
||
const SportBase = AiSport.sports.SportBase;
|
||
|
||
//注册自定义运动
|
||
SportBase.register(SportHandLift.KEY, SportHandLift.NAME, () => {
|
||
return new SportHandLift();
|
||
});
|
||
|
||
Page({
|
||
data: {
|
||
version: AiSport.version.release,
|
||
ve: null,
|
||
enhanced: module.judgeEnhanced(),
|
||
threshold: 0.25,
|
||
sports: utils.clone(SportBase.SPORTS),
|
||
sportKey: SportBase.SPORTS[1].key
|
||
},
|
||
|
||
async onLoad() {
|
||
this.setData({
|
||
enhanced: module.judgeEnhanced()
|
||
});
|
||
this.initializeVe();
|
||
},
|
||
|
||
initializeVe() {
|
||
|
||
wx.showLoading({
|
||
title: '加载模型...'
|
||
});
|
||
|
||
const that = this;
|
||
humanDetection.initialize({
|
||
ve: that.data.ve,
|
||
enhanced: that.data.enhanced,
|
||
callback: (err) => {
|
||
wx.hideLoading();
|
||
const ve = humanDetection.getVe();
|
||
let ehd = false;
|
||
if (ve == 1)
|
||
ehd = humanDetection.isEnhanced();
|
||
|
||
if (!err) {
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: `初始成功,引擎ve${ve} ${ehd ? '增强' : ''}`
|
||
})
|
||
return;
|
||
}
|
||
|
||
wx.setClipboardData({
|
||
data: err.message,
|
||
success: () => {
|
||
wx.showToast({
|
||
title: '初始化失败',
|
||
icon: 'none'
|
||
})
|
||
}
|
||
});
|
||
}
|
||
});
|
||
},
|
||
onShowTips(e) {
|
||
const msg = e.currentTarget.dataset.msg;
|
||
wx.showModal({
|
||
content: msg,
|
||
showCancel: false
|
||
});
|
||
},
|
||
onSelectVe(e) {
|
||
const v = e.currentTarget.dataset.v;
|
||
this.setData({ ve: v !== "null" ? Number(v) : null });
|
||
this.initializeVe();
|
||
},
|
||
|
||
onToggleEnhanced() {
|
||
this.setData({
|
||
enhanced: !this.data.enhanced
|
||
});
|
||
this.initializeVe()
|
||
},
|
||
onThresholdChanged(e) {
|
||
const reg = /^[0-1](\.\d{1,2})?$/;
|
||
const val = e.detail.value;
|
||
const th = parseFloat(val);
|
||
|
||
if (reg.test(val) && th <= 1) {
|
||
module.initializePlugin(th, this.data.enhanced);
|
||
return;
|
||
}
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: '阈值必须在0-1之间'
|
||
});
|
||
this.setData({
|
||
threshold: 0.35
|
||
});
|
||
},
|
||
|
||
onSelectSport(e) {
|
||
const key = e.currentTarget.dataset.key;
|
||
this.setData({
|
||
sportKey: key
|
||
});
|
||
},
|
||
|
||
onNavSport() {
|
||
wx.navigateTo({
|
||
url: `/module-sport/pages/sport?sportKey=${this.data.sportKey}`
|
||
});
|
||
},
|
||
|
||
onNavHuman() {
|
||
wx.navigateTo({ url: '/module-sport/pages/human' });
|
||
},
|
||
|
||
onShareAppMessage() {
|
||
return {
|
||
path: '/module-sport/pages/index',
|
||
title: '跃动小程序'
|
||
};
|
||
}
|
||
}); |