微信小程序获取蓝牙信标

/*** 搜索设备界面*/
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.mzph.cn/news/822688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重磅!国内首个基于单张图片的3D人脸重建课程

3D人脸重建在计算机视觉和图形学中一直是一个经典且热门的研究方向&#xff0c;在游戏、影视、娱乐等众多行业也有着广泛的应用。早期人脸重建主要基于多视角相机或深度相机&#xff0c;随着深度学习的兴起&#xff0c;基于单张图片的人脸重建成为可能&#xff0c;且重建的精度…

数学建模---Matlab学习笔记

1.经典例题 &#xff08;1&#xff09;判断质数 给定一个大于100的数字&#xff0c;判断是否为质数 先设定布尔值是true,也就是假设这个数字是质数&#xff0c;利用for循环进行遍历直到n-1&#xff0c;如果被任意的数字整除&#xff0c;就说明不是质数&#xff0c;我们就把布…

2024 年排名前 5 的 CSS 框架

文章目录 1、Bootstrap2、Tailwind CSS3、Foundation4、Bulma5、UIKit 1、Bootstrap Bootstrap框架是由Twitter的设计师Mark Otto和Jacob Thornton合作开发的&#xff0c;于2011年8月在GitHub上发布。它是目前最受欢迎的前端框架之一&#xff0c;被广泛应用于各种Web项目中。Bo…

最新Latex2024安装教程 超简单

Latex是一款常用的论文写作工具&#xff0c;今天小菜介绍Latex的安装配置过程。 1. 来到官网下载镜像文件 https://www.tug.org/texlive/ 按步骤点击&#xff1a; 就会进入一个最近的镜像网站&#xff0c;选择textlive2024.iso即可 下载完成之后解压&#xff0c;安装路径…

Linux02(项目部署,手动和自动部署,JDK版本问题,安装软件,安装软件,安装JDK,Tomcat,MySQL,Irzsz)

目录 一、安装软件 1. 安装准备工作 1 Linux里的软件安装方式 2 上传软件到Linux 3 拍照虚拟机快照 2. 安装JDK 1 卸载自带jdk 2 解压JDK 3 配置环境变量 4 测试JDK 3. 安装Tomcat 1 解压Tomcat 2 修改防火墙设置 3 测试Tomcat 启动Tomcat 访问Tomcat 查看Tom…

git 小记

一、 github新建仓库 git clone 。。。。。。。。。。。 &#xff08;增删查补&#xff0c;修改&#xff09; git add . git commit -m "修改” git push (git push main) 二、branch 分支 branch并不难理解&#xff0c;你只要想像将代码拷贝到不同目录…

MongoDB的CURD(增删改查操作)

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 ✈️如果喜欢这篇文章的话 &#x1f64f;大大们可以动动发财的小手&#x1f449;&#…

刷代码随想录有感(34):前k个高频元素

本题代码涉及到了多个陌生概念&#xff0c;题干如下&#xff1a; 代码; class Solution { public:class mycomparison{//自定义规则&#xff0c;使优先队列可以自动排序public:bool operator()(pair<int, int> & lhs, pair<int, int> & rhs){return lhs.s…

第十五届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组(基础题)

试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分&#xff1a;10 分 【问题描述】 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上 的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &…

如何保障UDP传输中数据文件不丢失?

UDP协议因其低时延和高速传输的特性&#xff0c;在实时应用和大量数据传输领域中发挥着不可或缺的作用。但是&#xff0c;由于UDP是一种无连接的通讯协议&#xff0c;它并不确保数据包的顺序、完整性和可靠性。 为了解决UDP传输中数据一致性的问题&#xff0c;技术专家们进行了…

【Linux系统编程】第四弹---基本指令(二)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、echo指令 2、cat指令 3、more指令 4、less指令 4、head指令 5、tail指令 6、时间相关的指令 7、cal指令 8、find指…

Wix在国内受限?为何不使用中国版WIX自助建站,wix的国产替代工具

wix是一款知名的在线网站建站工具&#xff0c;能让用户在其网络上网站编辑器中拖放工具创建HTML5网站。用户可在他们的网站编辑器中加入额外的功能&#xff0c;例如社交网络按钮、电子商务功能、联系表格、电子报及社群论坛等。 但wix在国内不能用&#xff0c;或打开速度很慢&a…

npm命令卡在reify:eslint: timing reifyNode:node_modules/webpack Completed in 475ms不动

1.现象 执行npm install命令时&#xff0c;没有报错&#xff0c;卡在reify:eslint: timing reifyNode:node_modules/webpack Completed in 475ms不动 2.解决办法 &#xff08;1&#xff09;更换淘宝镜像源 原淘宝 npm 域名http://npm.taobao.org 和 http://registry.npm.ta…

git clone自动安装最新版本,如何选择安装自己想要的其他版本,最简单解决方法

比如本人最新在安装 git clone https://github.com/synthetik-technologies/blastfoam.git 本人想要其中的3.0版本&#xff0c;但是上面git clone默认是使用最新版本6.2.0 这时候可以先执行 git clone https://github.com/synthetik-technologies/blastfoam.git 然后由…

【C++】力扣OJ题:构建杨辉三角

Hello everybody!今天给大家介绍一道我认为比较经典的编程练习题&#xff0c;之所以介绍它是因为这道题涉及到二维数组的构建&#xff0c;如果用C语言动态构建二维数组是比较麻烦的&#xff0c;而用C中STL的vector<vector<int>>,就可以立马构建出来&#xff0c;这也…

React-Redux(一)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-Redux&#xff08;一&#xff09; 目录 1、简介 2、三大原则&#xff08;重点&#xf…

ECharts数据大屏展示效果

ECharts数据大屏展示效果 前言1、效果预览1.2、视频效果 2、使用框架3、如何处理屏幕自适应效果4、ECharts模块、dataV大屏插件 编写与布局5、往期回顾总结&#xff1a; 前言 数据大屏需整体效果好看&#xff0c;界面缩放自适应大小&#xff0c;全屏展示铺满整个屏幕并自适应&a…

HTML段落标签、换行标签、文本格式化标签与水平线标签

目录 HTML段落标签 HTML换行标签 HTML格式化标签 加粗标签 倾斜标签 删除线标签 下划线标签 HTML水平线标签 HTML段落标签 在网页中&#xff0c;要把文字有条理地显示出来&#xff0c;就需要将这些文字分段显示。在 HTML 标签中&#xff0c;<p>标签用于定义段落…

Golang面试题四(GMP)

目录 1.Goroutine 定义 2.GMP 指的是什么 3.GMP模型的简介 全局队列&#xff08;Global Queue&#xff09; P的本地队列 P列表 M列表 4.有关P和M的个数问题 P的数量问题 M的数量问题 P和M何时会被创建 5.调度器P的设计策略 复⽤线程 work stealing机制 hand off…

算法 第41天 动态规划3

343 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 # 动态规划 def integerBreak(n:int)->int:dp[0]*(n1)dp[2]1 #从下标为2开始 &#xff0…