/**
* 搜索设备界面
*/
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();
}
},
再配合一下这写就可以实现进入页面播放音频啦