微信小程序音乐播放器js代码

时间: 2023-10-04 15:10:22 浏览: 42
以下是一个简单的微信小程序音乐播放器的 js 代码示例: ``` // 获取全局唯一的背景音频管理器 const backgroundAudioManager = wx.getBackgroundAudioManager() Page({ data: { // 歌曲名 songName: '未知歌曲', // 歌手名 singerName: '未知歌手', // 专辑封面 albumCover: '', // 歌曲总时长 duration: '00:00', // 当前播放时间 currentTime: '00:00', // 播放状态(0:未播放,1:正在播放,2:暂停) playStatus: 0, // 歌曲列表 songList: [{ id: 1, songName: '歌曲1', singerName: '歌手1', albumCover: 'https://xxx/xxx/xxx.jpg', musicUrl: 'https://xxx/xxx/xxx.mp3' }, { id: 2, songName: '歌曲2', singerName: '歌手2', albumCover: 'https://xxx/xxx/xxx.jpg', musicUrl: 'https://xxx/xxx/xxx.mp3' }] }, // 播放/暂停 playOrPause: function() { if (this.data.playStatus === 0) { // 如果未播放,则开始播放第一首歌曲 this.playSong(0) } else if (this.data.playStatus === 1) { // 如果正在播放,则暂停 backgroundAudioManager.pause() this.setData({ playStatus: 2 }) } else if (this.data.playStatus === 2) { // 如果已暂停,则继续播放 backgroundAudioManager.play() this.setData({ playStatus: 1 }) } }, // 播放指定歌曲 playSong: function(index) { const song = this.data.songList[index] // 设置背景音频数据 backgroundAudioManager.title = song.songName backgroundAudioManager.singer = song.singerName backgroundAudioManager.coverImgUrl = song.albumCover backgroundAudioManager.src = song.musicUrl // 监听背景音频播放事件 backgroundAudioManager.onPlay(() => { console.log('onPlay') this.setData({ playStatus: 1 }) }) // 监听背景音频暂停事件 backgroundAudioManager.onPause(() => { console.log('onPause') this.setData({ playStatus: 2 }) }) // 监听背景音频停止事件 backgroundAudioManager.onStop(() => { console.log('onStop') this.setData({ playStatus: 0, currentTime: '00:00' }) }) // 监听背景音频播放进度更新事件 backgroundAudioManager.onTimeUpdate(() => { console.log('onTimeUpdate') const duration = backgroundAudioManager.duration const currentTime = backgroundAudioManager.currentTime this.setData({ duration: this.formatTime(duration), currentTime: this.formatTime(currentTime) }) }) // 监听背景音频自然播放结束事件 backgroundAudioManager.onEnded(() => { console.log('onEnded') const nextIndex = index + 1 if (nextIndex < this.data.songList.length) { // 如果还有下一首歌曲,则播放下一首 this.playSong(nextIndex) } else { // 如果已经播放完所有歌曲,则停止播放 backgroundAudioManager.stop() this.setData({ playStatus: 0, currentTime: '00:00' }) } }) }, // 格式化时间 formatTime: function(time) { const minutes = Math.floor(time / 60) const seconds = Math.floor(time % 60) return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}` } }) ``` 在上面的代码中,我们定义了一个 `backgroundAudioManager` 对象,用于管理背景音频的播放、暂停、停止等操作。同时,我们还定义了一个 `Page` 对象,用于管理页面的数据和事件处理。在 `Page` 对象的 `data` 属性中,我们定义了一些与播放器相关的数据,包括歌曲名、歌手名、专辑封面、歌曲总时长、当前播放时间、播放状态和歌曲列表。在 `Page` 对象的方法中,我们定义了一些与播放器相关的事件处理函数,包括播放/暂停、播放指定歌曲、格式化时间等。在 `playOrPause` 方法中,我们根据播放状态执行不同的操作,如果未播放,则开始播放第一首歌曲;如果正在播放,则暂停;如果已暂停,则继续播放。在 `playSong` 方法中,我们设置了背景音频数据,并监听了背景音频的播放、暂停、停止、进度更新和自然播放结束等事件。在 `formatTime` 方法中,我们将时间格式化为 `mm:ss` 的形式。

相关推荐

最新推荐

recommend-type

微信小程序 九宫格实例代码

微信小程序 九宫格 实现效果图: 小程序是长在微信上的,是移动端的界面,为了能够更方便的使用,我们常常希望使用九宫格界面的方式作为导航,那要如何实现呢? 基于一个简单的思考,九宫格就是三行三列,如果把行...
recommend-type

如何在微信小程序里面退出小程序的方法

主要介绍了如何在微信小程序里面退出小程序的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

微信小程序实现通过js操作wxml的wxss属性示例

本文实例讲述了微信小程序实现通过js操作wxml的wxss属性。分享给大家供大家参考,具体如下: 微信小程序如何通过js操作html的css属性: 在web端、手机端、webApp中可以通过js获取dom的方式设置dom属性。 微信小程序...
recommend-type

微信小程序通过websocket实时语音识别的实现代码

之前在研究百度的实时语音识别,并应用到了微信小程序中,写篇文章分享一下。 先看看完成的效果吧 前置条件 申请百度实时语音识别key 百度AI接入指南 创建小程序 设置小程序录音参数 在index.js中输入 const...
recommend-type

详解微信小程序的不同函数调用的几种方法

主要介绍了微信小程序的不同函数调用的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章

![:YOLOv1目标检测算法:实时目标检测的先驱,开启计算机视觉新篇章](https://img-blog.csdnimg.cn/img_convert/69b98e1a619b1bb3c59cf98f4e397cd2.png) # 1. 目标检测算法概述 目标检测算法是一种计算机视觉技术,用于识别和定位图像或视频中的对象。它在各种应用中至关重要,例如自动驾驶、视频监控和医疗诊断。 目标检测算法通常分为两类:两阶段算法和单阶段算法。两阶段算法,如 R-CNN 和 Fast R-CNN,首先生成候选区域,然后对每个区域进行分类和边界框回归。单阶段算法,如 YOLO 和 SSD,一次性执行检
recommend-type

info-center source defatult

这是一个 Cisco IOS 命令,用于配置 Info Center 默认源。Info Center 是 Cisco 设备的日志记录和报告工具,可以用于收集和查看设备的事件、警报和错误信息。该命令用于配置 Info Center 默认源,即设备的默认日志记录和报告服务器。在命令行界面中输入该命令后,可以使用其他命令来配置默认源的 IP 地址、端口号和协议等参数。
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。