微信小程序获取蓝牙信标

ops/2024/9/22 21:26:11/
/*** 搜索设备界面*/
import Dialog from '@vant/weapp/dialog/dialog';
Page({data: {list: []},onPullDownRefresh: function () {wx.request({url: 'https://wwz.jingyi.icu/app/Explain/index',data: {scenic_id: 3},method: 'POST',success: (res) => {console.log(res);let that = thislet BeaconData = res.data.datathat.setData({list: BeaconData})let seach = {}let uuids = []for (let i = 0; i < res.data.data.length; i++) {uuids.push(res.data.data[i].deviceid)}console.log(uuids);// 初始化蓝牙设备wx.openBluetoothAdapter({success: function (blueres) {console.log('蓝牙适配器初始化成功', blueres)wx.startBeaconDiscovery({uuids: uuids, //多个uuid数组success: function (res) {console.log(res);wx.onBeaconUpdate(function () {//设置监听事件wx.getBeacons({//在监听事件中获取数据success: res => {console.log(res.beacons) //res.beacons 为搜索到的iBeacon数据数组//业务代码for (let i = 0; i < BeaconData.length; i++) {console.log(res.beacons[0].uuid);console.log(BeaconData[i].deviceid);if (res.beacons[0].uuid.toUpperCase() == BeaconData[i].deviceid.toUpperCase()) {console.log(123);that.setData({list: BeaconData})}}console.log(seach);wx.stopBeaconDiscovery({success(res) {console.log("已暂停搜索", res);}})}})})}})},fail: function (res) {console.log(res);wx.showModal({title: '提醒',content: '系统监测未打开蓝牙,请打开后下拉刷新',})console.log(uuids);}})}})wx.stopPullDownRefresh()  //自动关闭下拉刷新},onLoad: function () {if (wx.getStorageSync('info')) {wx.request({url: 'https://wwz.jingyi.icu/app/Explain/index',data: {scenic_id: 3},method: 'POST',success: (res) => {console.log(res);let that = thislet BeaconData = res.data.datalet seach = {}let uuids = []for (let i = 0; i < res.data.data.length; i++) {uuids.push(res.data.data[i].deviceid)}console.log(uuids);// 初始化蓝牙设备wx.openBluetoothAdapter({success: function (blueres) {console.log('蓝牙适配器初始化成功', blueres)wx.startBeaconDiscovery({uuids: uuids, //多个uuid数组success: function (res) {console.log(res);wx.onBeaconUpdate(function () {//设置监听事件wx.getBeacons({//在监听事件中获取数据success: res => {console.log(res.beacons) //res.beacons 为搜索到的iBeacon数据数组//业务代码for (let i = 0; i < BeaconData.length; i++) {console.log(res.beacons[0].uuid);console.log(BeaconData[i].deviceid);if (res.beacons[0].uuid.toUpperCase() == BeaconData[i].deviceid.toUpperCase()) {console.log(123);that.setData({list: BeaconData})}}console.log(seach);wx.stopBeaconDiscovery({success(res) {console.log("已暂停搜索", res);}})}})})}})},fail: function (res) {console.log(res);wx.showModal({title: '提醒',content: '系统监测未打开蓝牙,请打开后下拉刷新',})console.log(uuids);}})}})} else {Dialog.confirm({title: '温馨提示',message: '系统监测到您当前还未登录,暂时无法进行后续操作,需要先行登录',}).then(() => {wx.navigateTo({url: '../login/login'})}).catch(() => {// on cancel});}}
})

如果需要配合音频使用的话 可以加一个背景音频 小程序>微信小程序自带的audio已经不能用了 这里要用的是微信的背景音频

蓝牙获取成功以后将这穿代码塞进去 src需要自己调配

 const backgroundAudioManager = wx.getBackgroundAudioManager()// 1、getBackgroundAudioManager的属性// 1.1歌曲歌名backgroundAudioManager.title = '景区讲解'// 1.2歌曲专辑名称// 1.3歌曲作者// 1.4设置了 src 之后会自动播放backgroundAudioManager.src = 'https://wwz.jingyi.icu/uploads/20240121/2732c2e6d29a551cb1d441d1d99706ae.mp3'this.setData({ musicId: options.musicId })// 获取音乐详情this.getMusicInfo(options.musicId);// 创建控制音乐播放的实例this.backgroundAudioManager = wx.getBackgroundAudioManager();// 监视音乐播放/暂停/停止this.backgroundAudioManager.onPlay(() => {this.changePlayState(true);});this.backgroundAudioManager.onPause(() => {this.changePlayState(false);});this.backgroundAudioManager.onStop(() => {this.changePlayState(false);});}

// 修改播放状态的功能函数changePlayState(isPlay) {// 修改音乐是否的状态this.setData({ isPlay })},// 获取音乐详情的功能函数async getMusicInfo(musicId) {let songData = await request('/song/detail', { ids: musicId });this.setData({song: songData.songs,})},// 点击播放/暂停的回调handleMusicPlay() {let isPlay = !this.data.isPlay;let { musicId } = this.data;this.musicControl(isPlay, musicId);},// 控制音乐播放/暂停的功能函数async musicControl(isPlay, musicId) {if (isPlay) { // 音乐播放// 获取音乐播放链接let musicLinkData = await request('/song/url', { id: musicId });let musicLink = musicLinkData.data[0].url;this.backgroundAudioManager.title = this.data.song.name;this.backgroundAudioManager.epname = this.data.song.al.namethis.backgroundAudioManager.singer = this.data.song.aralosongNamethis.backgroundAudioManager.src = musicLink;} else { // 暂停音乐this.backgroundAudioManager.pause();}},

 再配合一下这写就可以实现进入页面播放音频啦


http://www.ppmy.cn/ops/13607.html

相关文章

《ElementPlus 与 ElementUI 差异集合》el-select 差异点,如:高、宽、body插入等

宽度 Element UI 父元素不限制宽度时&#xff0c;默认有个宽度 207px&#xff1b; 父元素有固定宽度时&#xff0c;以父元素宽度为准&#xff1b; Element Plus 父元素不限制宽度时&#xff0c;默认100%&#xff1b; 父元素有固定宽度时&#xff0c;以父元素宽度为准&#x…

第二期书生浦语大模型训练营第四次笔记

大模型微调技术 大模型微调是一种通过在预训练模型的基础上&#xff0c;有针对性地微调部分参数以适应特定任务需求的方法。 微调预训练模型的方法 微调所有层&#xff1a;将预训练模型的所有层都参与微调&#xff0c;以适应新的任务。 微调顶层&#xff1a;只微调预训练模型…

STL-list的使用及其模拟实现

在C标准库中&#xff0c;list 是一个双向链表容器&#xff0c;用于存储一系列元素。与 vector 和 deque 等容器不同&#xff0c;list 使用带头双向循环链表的数据结构来组织元素&#xff0c;因此list插入删除的效率非常高。 list的使用 list的构造函数 list迭代器 list的成员函…

(七)Idea编辑器集成Tomcat

1. 点击桌面上Idea快捷方式打开Idea编辑器&#xff0c;假如没有创建项目的话打开Idea编辑器后的界面展示如下图所示 2. 点击界面左侧菜单中的自定义 3. 然后点击界面中的“所有设置...”,然后点击“构建、执行、部署”&#xff0c;选择其中的“应用程序服务器” 4. 点击“”按钮…

回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测&#xff0…

Arduino UNO驱动MPR121接近电容式触摸传感器控制WS2812彩灯

简介 MPR121芯片功能强大可用作触摸,电容检测,驱动LED等等.在低速扫描下可以将功 耗降低到8μA,可以处理多达12个独立的触摸板。支持I2C,几乎可以用任何微控 制器连接。可以使用ADDR引脚选择4个地址中的一个,一个I2C2线总线上共有48 个电容触摸板。使用该芯片比使用模拟输入进行…

JavaWeb前端/后端开发规范——接口文档概述及YApi平台的使用

前言&#xff1a; 整理下笔记&#xff0c;打好基础&#xff0c;daydayup!!! 接口文档 什么是接口文档&#xff1f; 目前主流的开发模式为前后端分离式开发&#xff0c;为了方便前后端的对接&#xff0c;就需要使用接口文件进行统一规范。 接口文档记载什么信息&#xff1f; 1&…

【大语言模型LLM】-如何使用大语言模型提高工作效率?

关于作者 行业&#xff1a;人工智能训练师/LLM 学者/LLM微调乙方PM发展&#xff1a;微调大模型训练/大模型增强检索RAG分享国内大模型前沿工作记录&#xff0c;共同成长&#xff0c;欢迎关注交流… 大语言模型LLM基础-系列文章 大语言模型LLM】-大语言模型如何编写Prompt?持…