各位新年好,祝大家在新的一年的里,心想事成2018发大财。
今天公司新年第二天上班,继续写去年没完成的任务,领导的要求是这样的。打开小程序的首页然后走到一定的范围内,开始摇一摇搜索附近蓝牙设备等或者其它的操作。
<audio src="{{srcaud}}" id="myAudio" ></audio>
//用于音频播放
{{srcaud}}可以不理,可以在data里直接定义好
function shakeFun(){ // 摇一摇方法封装
var numX = 1 //x轴
var numY = 1 // y轴
var numZ = 0 // z轴
var stsw = true // 开关,保证在一定的时间内只能是一次,摇成功
var positivenum = 0 //正数 摇一摇总数
var audioCtx = wx.createAudioContext('myAudio') //音频,用于摇成功提示
wx.onAccelerometerChange(function (res) { //小程序api 加速度计
if (numX < res.x && numY < res.y) { //个人看法,一次正数算摇一次,还有更复杂的
positivenum++
setTimeout(() => { positivenum = 0 },2000) //计时两秒内没有摇到指定次数,重新计算
}
if (numZ < res.z && numY < res.y) { //可以上下摇,上面的是左右摇
positivenum++
setTimeout(() => { positivenum = 0 }, 2000) //计时两秒内没有摇到指定次数,重新计算
}
if (positivenum == 2 && stsw){ //是否摇了指定的次数,执行成功后的操作
stsw = false
audioCtx.setSrc('http://pic.ibaotu.com/00/43/58/92J888piCmbi.mp3') //音频文件,第三方的可自行选择
audioCtx.play() //播发音频
console.log('摇一摇成功')
setTimeout(() => {
positivenum = 0 // 摇一摇总数,重新0开始,计算
stsw = true
},2000)
}
})
}
如果你有还有别的方法想法的或者本例子有问题的可联系我噢,多多学习~
网友评论