uniapp音频加进度条加蓝牙ibecon设备搜索

html

<slider :value="num" :max="duration" @change="change" width="100%" :disabled="isSliderDisabled">

</slider>

js

import {

explain

} from '@/api/api.js';

export default {

data() {

return {

iBeaconDevices: [], // 存储搜索到的iBeacon设备

deviceId: [],

data: [],

url: getApp().globalData.url,

innerAudioContext: null,

num: 0, //秒

int: null, //定时器

duration: '111', //总时长

isSliderDisabled: false,

status: false,

audio_status: false,

type: 2

}

},

// 下拉刷新

onPullDownRefresh() {

try {

this.explain()

uni.stopPullDownRefresh(); //停止刷新

} catch (e) {}

},

onLoad() {

this.explain()

},

methods: {

play() {

if (!this.status) {

this.int = setInterval(() => {

this.num++

}, 1000)

this.status = true

this.change({

detail: {

value: this.num

}

})

} else {

this.status = false

clearInterval(this.int)

this.innerAudioContext.pause()

}

},

change(e) {

if (this.status) {

this.isSliderDisabled = true;

this.num = e.detail.value;

this.innerAudioContext.seek(e.detail.value)

setTimeout(() => {

this.innerAudioContext.play()

this.isSliderDisabled = false;

}, 500)

}

},

box(deviceid) {

console.log(deviceid, 99909);

let that = this

uni.openBluetoothAdapter({ //蓝牙初始化

success(res) {

uni.getLocation({

success(res) {

uni.startBeaconDiscovery({ //搜索蓝牙设备

uuids: deviceid,

success(res) {

console.log(res, 888);

uni.onBeaconUpdate((res) => { //监听蓝牙搜索到的设备

console.log(res, 999);

uni.hideLoading()

that.type = 1

})

},

fail(res) {

console.log('暂未搜索到蓝牙设备', res);

uni.showToast({

title: '暂未搜索到蓝牙设备,请下拉刷新',

icon: 'none'

})

}

})

},

fail(res) {

uni.showToast({

title: '请打开位置信息,并下拉刷新',

icon: 'none'

})

}

})

},

fail(res) {

console.log('蓝牙未打开', res);

uni.showToast({

title: '请打开蓝牙,并下拉刷新',

icon: 'none'

})

}

})

},

async explain() {

uni.showLoading({

title: '加载中...'

})

const res = await explain({

scenic_id: 3

})

this.data = res.data

if (!this.audio_status) {

this.innerAudioContext = uni.createInnerAudioContext()

this.innerAudioContext.src = this.url + this.data[0].audio;

this.innerAudioContext.onCanplay(() => {

// 获取音频总时长,单位为秒

this.duration = this.innerAudioContext.duration

console.log('音频总时长:', this.innerAudioContext.duration, 9)

})

}

this.audio_status = true

this.box([(res.data[0].deviceid)])

}

},

}

相关推荐
智者知已应修善业1 天前
【51单片机89C51及74LS273、74LS244组成】2022-5-28
c++·经验分享·笔记·算法·51单片机
奋斗的小乌龟1 天前
langchain4j笔记-06
笔记
·醉挽清风·1 天前
学习笔记—MySQL—库表操作
笔记·学习·mysql
weixin_451431561 天前
【学习笔记】微博视频页面ajax请求与响应数据分析
笔记·学习·音视频
快乐得小萝卜1 天前
OpenVLA 论文精读笔记
笔记
叶~小兮1 天前
K8S进阶核心综合学习笔记(持久化存储+特殊容器+调度管理)
笔记·学习·kubernetes
Skylwn1 天前
保姆级教程之将 GitHub Models 接入 NewAPI
笔记·github
脆皮炸鸡7551 天前
库制作与原理~动态链接
linux·开发语言·经验分享·笔记·学习方法
nnsix1 天前
设计模式 - 工厂模式 笔记
笔记·设计模式
西洼工作室1 天前
个人开发者接入阿里云号码认证服务AliCloud-NirvanaPns实现一键登录
python·阿里云·uni-app·全栈·认证授权