心动页面html,心动模式播放页.html

此页面为心动模式音乐播放器的设计实现,包含一键复制、编辑WebIDE等功能,支持透明GIF及资源路径加载。



心动模式播放页

$axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent.gif'; };

$axure.utils.getOtherPath = function() { return 'resources/Other.html'; };

$axure.utils.getReloadPath = function() { return 'resources/reload.html'; };

u1.png

100%

u94.png

u95.png

u96.png

4:54 AM

u754.png

u99.png

u100.png

另一个童话

G.E.M.邓紫棋>

u113.png

00:00

03:53

u107.png

心动模式

u102.png

u103.png

u104.png

u106.png

u768.png

u108.png

u109.png

u110.png

u1980.png

一键复制

编辑

Web IDE

原始数据

按行查看

历史

// pages/video/video.js Page({ /** * 页面的初始数据 */ data: { videoGroupList:[ { "id": 1, "name": "推荐", }, { "id": 2, "name": "私人雷达", }, { "id": 3, "name": "猜你心动", }, { "id": 4, "name": "电音风暴", }, { "id": 5, "name": "独立之声", }], navId: 1, // 导航的标识 beforeVideoList: [], videoList: [], // 视频列表数据 videoId: '', // 视频id标识 videoUpdateTime: [], // 记录video播放的时长 isTriggered: false, // 标识下拉刷新是否被触发 }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { }, loadVideoData() { wx.showLoading({ title: '加载中' }); this.setData({ loading: true }); try { const data = require('../../data/video'); this.setData({ beforeVideoList: data.videoList, loading: false }); } catch (error) { console.error('详细错误:', error); wx.showToast({ title: '加载失败', icon: 'none' }); this.setData({ loading: false }); } finally { wx.hideLoading(); } }, changeNav(event) { let navId = event.currentTarget.id; // 获取点击项的id(字符串类型) navId = navId >>> 0; // 转换为数字类型 // 筛选匹配的视频数据 const filteredList = this.data.beforeVideoList.filter(item => item.id == navId); // 更新数据 this.setData({ navId: navId, videoList: filteredList }); }, // ...原有data保持不变... async loadVideoData() { wx.showLoading({ title: '加载中' }); try { // 步骤1:获取推荐视频列表 const searchRes = await this.biliRequest( 'https://api.bilibili.com/x/web-interface/popular', 'GET' ); // 步骤2:批量处理视频地址 const processedList = await Promise.all( searchRes.data.list.map(async item => { const cid = await this.getVideoCid(item.bvid); const playUrl = await this.getPlayUrl(item.bvid, cid); return { id: item.id, title: item.title, videoUrl: playUrl }; }) ); this.setData({ beforeVideoList: processedList, videoList: processedList }); } catch (err) { wx.showToast({ title: '加载失败', icon: 'none' }); } finally { wx.hideLoading(); } }, // 获取视频CID getVideoCid(bvid) { return this.biliRequest( 'https://api.bilibili.com/x/web-interface/view', 'GET', { bvid } ).then(res => res.data.cid); }, // 获取播放地址 getPlayUrl(bvid, cid) { return this.biliRequest( 'https://api.bilibili.com/x/player/playurl', 'GET', { bvid, cid, qn: 80, fnval: 16 } ).then(res => res.data.durl[0].url); }, // 通用B站请求方法 biliRequest(url, method, data) { return new Promise((resolve, reject) => { wx.request({ url, method, data, header: { 'Referer': 'https://www.bilibili.com', 'User-Agent': 'Mozilla/5.0 BiliDroid/6.0.0' }, success: (res) => { if (res.statusCode === 200 && res.data.code === 0) { resolve(res.data); } else { reject(new Error(res.data.message)); } }, fail: reject }); }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { if(this.data.videoList.length === 0) { this.loadVideoData(); } }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })是这样吗?为什么感觉不太能用
最新发布
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值