微信小程序获取蓝牙信标

/**
 * 搜索设备界面
 */
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 = this
        let BeaconData = res.data.data
        that.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 = this
          let BeaconData = res.data.data
          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);
            }
          })
        }
      })
    } 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.name
      this.backgroundAudioManager.singer = this.data.song.aralosongName
      this.backgroundAudioManager.src = musicLink;
    } else { // 暂停音乐
      this.backgroundAudioManager.pause();
    }
  },

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/551130.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elastic安装后 postman对elasticsearch进行测试

一、创建索引和mapping //id 字段自增id //good_sn 商品SKU //good_name 商品名称 //good_introduction 商品简介 //good_descript 商品详情 PUT http://IP:9200/shop { "mappings":{ "good":{ "properties":{ …

基于Linux C++多线程服务器 + Qt上位机开发 + STM32 + 8266WIFI的智慧无人超市

前言 针对传统超市购物车结账排队时间长、付款效率低的问题&#xff0c;提出了一种更符合现代社会人们购物方式-基于RFID的自助收银系统。习惯了快节奏生活的人们都会选择自助收银机结账&#xff0c;理由显而易见&#xff1a;自助收银机结账很方便&#xff0c;几乎不用排队&am…

MongoDB的安装配置及使用

文章目录 前言一、MongoDB的下载、安装、配置二、检验MongoDB是否安装成功三、Navicat 操作MongoDB四、创建一个集合&#xff0c;存放三个文档总结 前言 本文内容&#xff1a; &#x1f4ab; MongoDB的下载、安装、配置 &#x1f4ab; 检验MongoDB是否安装成功 ❤️ Navicat 操…

【全开源】多功能完美运营版商城 虚拟商品全功能商城 全能商城小程序 智慧商城系统 全品类百货商城

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城 干干净净 没有一丝多余收据 还没过手其他站 还没乱七八走的广告和后门 后台可以自由拖曳修改前端UI页面 …

Unity之XR Interaction Toolkit如何在VR中实现渐变黑屏效果

前言 做VR的时候,有时会有跳转场景,切换位置,切换环境,切换进度等等需求,此时相机的画面如果不切换个黑屏,总会感觉很突兀。刚好Unity的XR Interaction Toolkit插件在2.5.x版本,出了一个TunnelingVignette的效果,我们今天就来分析一下他是如何使用的,然后我们自己再来…

numpy的使用

numpy的介绍 numpy是一个python开源的科学计算库 使用numpy可以方便的使用数组、矩阵&#xff08;列表套列表&#xff09;进行计算 包括线性代数、傅里叶变换&#xff0c;随机数生成等大量函数 python源代码和numpy和的区别 import numpy as np def func(n):a np.arange(n) *…

SAP 内部订单(二)-内部订单相关操作

业务背景&#xff1a;公司A要举办一个展会&#xff0c;持续时间大概一个月&#xff0c;涉及到材料费&#xff0c;人工费&#xff0c;外部服务费等&#xff0c;老板想要知道这个展会总共的花销是多少&#xff0c;明细是哪些&#xff0c;并且这些费用最终都进入市场部的成本中心。…

Jackson 2.x 系列【25】Spring Boot 集成之起步依赖、自动配置

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 前言2. 起步依赖3. 自动配置3.1 JacksonPrope…

数学建模-最优包衣厚度终点判别法-二(K-Means聚类)

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是viperrrrrrr~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff…

PyTorch小技巧:使用Hook可视化网络层激活(各层输出)

这篇文章将演示如何可视化PyTorch激活层。可视化激活&#xff0c;即模型内各层的输出&#xff0c;对于理解深度神经网络如何处理视觉信息至关重要&#xff0c;这有助于诊断模型行为并激发改进。 我们先安装必要的库: pip install torch torchvision matplotlib加载CIFAR-10数据…

淘宝扭蛋机小程序开发:开启购物娱乐新纪元

在数字时代浪潮的推动下&#xff0c;小程序作为新兴的交互平台&#xff0c;正在不断引领着购物方式的革新。淘宝扭蛋机小程序的开发&#xff0c;便是这一变革中的一颗璀璨明星&#xff0c;它将传统扭蛋机的趣味与电商购物的便捷完美融合&#xff0c;为用户带来了前所未有的购物…

微服务整合Spring Cloud Gateway动态路由

前置 创建 Spring Cloud项目 参考&#xff1a;创建Spring Cloud Maven工程-CSDN博客 1. 创建一个maven jar类型项目 在idea中右键父工程-》New-》Module 创建一个maven工程 2. 引入相关依赖 在POM文件中引入下面的依赖 <project xmlns"http://maven.apache.org/P…

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

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

本地生活服务平台都有哪些,靠谱吗?

随着本地生活服务的发展潜力和盈利方式被不断挖掘&#xff0c;越来越多的人开始发现其中所蕴含着的巨大商机&#xff0c;大家所熟悉的抖音、小红书和支付宝等平台也纷纷上线了本地生活板块&#xff0c;再次印证了其前景的广阔。在此背景下&#xff0c;普通人想要趁势入局分一杯…

前端开发攻略---从源码角度分析Vue3的Propy比Vue2的defineproperty到底好在哪里。一篇文章让你彻底弄懂响应式原理。

1、思考 Vue的响应式到底要干什么&#xff1f; 无非就是要知道当你读取对象的时候&#xff0c;要知道它读了。要做一些别的事情无非就是要知道当你修改对象的时候&#xff0c;要知道它改了。要做一些别的事情所以要想一个办法&#xff0c;把读取和修改的动作变成一个函数&#…

Python语言在地球科学领域中的实践技术应用教程

原文链接&#xff1a;Python语言在地球科学领域中的实践技术应用教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247601506&idx6&snee03d6abdbcbe0216a07340c1b49cb8d&chksmfa820c85cdf585934051f111b1d95877ba54e71cbe74be87f9e0bd07b8d46d97bbc7d…

深入理解大语言模型微调技术

一、概念解析 1、什么是微调&#xff08;Fine-tuning&#xff09;&#xff1f; 大模型微调&#xff0c;也称为Fine-tuning&#xff0c;是指在已经预训练好的大型语言模型基础上&#xff08;一般称为“基座模型”&#xff09;&#xff0c;使用特定的数据集进行进一步的训练&am…

基于Springboot的某大药房管理系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

小成本搏大流量:微信/支付宝小程序搜索排名优化

随着移动互联网的快速发展&#xff0c;小程序已成为企业和个人开发者重要的流量入口和业务承载平台。而小程序搜索排名则是影响小程序曝光量、用户获取及业务转化的关键因素。小柚在本文和大家探讨如何制定有效的优化方案&#xff0c;提升小程序在搜索结果中的排名。 首先跟我…

【图文教程】在PyCharm中导入Conda环境

文章目录 &#xff08;1&#xff09;在Anaconda Prompt中新建一个conda虚拟环境&#xff08;2&#xff09;使用PyCharm打开需要搭建环境的项目&#xff08;3&#xff09;配置环境 &#xff08;1&#xff09;在Anaconda Prompt中新建一个conda虚拟环境 conda create - myenv py…