uniapp:音乐播放器

news/2024/5/13 21:30:22

功能要求:全局音乐播放,可以上一首,下一首,暂停,播放。

1、mixins

export default {data() {return {audio: null, // 音频对象playlist: [{url: require('../static/1.mp3')}, {url: require('../static/2.mp3')}, {url: require('../static/3.mp3')}, {url: require('../static/4.mp3')}], // 播放列表currentIndex: 0, // 当前播放的歌曲索引loopMode: 'list', // 循环模式('single'表示单曲循环,'list'表示列表循环)is_bf: false,}},methods: {playAudio(src) {// 创建音频对象if(!this.audio){console.log('注册');this.audio = uni.createInnerAudioContext();}this.audio.src = src;// 监听音频播放结束事件this.audio.onEnded(() => {this.nextAudio();});// 监听音频播放错误事件this.audio.onError((err) => {console.error('音频播放出错:', err);});// 开始播放音频this.audio.play();this.is_bf = true},pauseAudio() {if (this.audio) {this.audio.pause();this.is_bf = false;}},resumeAudio() {if (this.audio) {this.audio.play();this.is_bf = true;}},nextAudio() {this.audio.destroy();this.audio = null;console.log('销毁');if (this.currentIndex === this.playlist.length - 1) {// 如果是最后一首歌曲,根据循环模式判断下一曲if (this.loopMode === 'single') {this.playAudio(this.playlist[this.currentIndex].url);} else if (this.loopMode === 'list') {this.currentIndex = 0;this.playAudio(this.playlist[this.currentIndex].url);}} else {// 播放下一首歌曲this.currentIndex++;this.playAudio(this.playlist[this.currentIndex].url);}},prevAudio() {this.audio.destroy();this.audio = null;console.log('销毁');if (this.currentIndex === 0) {// 如果是第一首歌曲,根据循环模式判断上一曲if (this.loopMode === 'single') {this.playAudio(this.playlist[this.currentIndex].url);} else if (this.loopMode === 'list') {this.currentIndex = this.playlist.length - 1;this.playAudio(this.playlist[this.currentIndex].url);}} else {// 播放上一首歌曲this.currentIndex--;this.playAudio(this.playlist[this.currentIndex].url);}},},
}

2、music组件

<template><view class="music_box df-aic-jusb"><view class="df-aic"><image src="../../static/img/43.png" mode="" class="icon"></image><view class="right"><view class="fsz-26 fw-b u-line-1">周杰伦,天涯过客</view><view class="fsz-22 u-line-1">张韶涵</view></view></view><view class="df-aic"><image src="../../static/img/39.png" mode="" class="icon2" @click="playPrevAudio"></image><image src="../../static/img/42.png" mode="" class="icon2" @click="playSelectedAudio(is_bf)" v-if="!is_bf"></image><image src="../../static/img/41.png" mode="" class="icon2" @click="playSelectedAudio(is_bf)" v-else></image><image src="../../static/img/40.png" mode="" class="icon2" @click="playNextAudio"></image></view></view>
</template>
<script>export default {mounted() {},methods: {playSelectedAudio(is) {if(!this.audio){this.currentIndex = 0;const audioSrc = this.playlist[this.currentIndex].url;this.playAudio(audioSrc);}else{if(!is){this.resumeAudio()}else{this.pauseAudio()}}},playNextAudio() {if(!this.audio){this.playSelectedAudio()}else{this.nextAudio();}},playPrevAudio() {if(!this.audio){this.playSelectedAudio()}else{this.prevAudio();}},},}
</script><style scoped lang="scss">.music_box {width: 690rpx;height: 88rpx;background: rgba(37,52,89,0.8);border-radius: 10rpx;border: 1rpx solid #FFFFFF;margin: 30rpx auto 30rpx;padding: 0 20rpx;.right{width: 320rpx;}.icon{width: 64rpx;height: 64rpx;margin-right: 20rpx;border-radius: 10rpx;}.icon2{width: 30rpx;height: 30rpx;margin-left: 38rpx;}.fsz-22{color: #8D9BB9;}}
</style>

在这里插入图片描述
1、mixins中的playlist自行实现接口获取数据。
2、H5,APP已测试可用

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

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

相关文章

论文阅读:Diffusion Model-Based Image Editing: A Survey

Diffusion Model-Based Image Editing: A Survey 论文链接 GitHub仓库 摘要 这篇文章是一篇基于扩散模型&#xff08;Diffusion Model&#xff09;的图片编辑&#xff08;image editing&#xff09;方法综述。作者从多个方面对当前的方法进行分类和分析&#xff0c;包括学习…

spring boot集成neo4j实现简单的知识图谱

一、neo4j介绍 随着社交、电商、金融、零售、物联网等行业的快速发展&#xff0c;现实社会织起了了一张庞大而复杂的关系网&#xff0c;传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长&#xff0c;急需一种支持海量复杂数据关系运算的…

《操作系统真象还原》第一章——ubuntu下安装并配置Bochs

下载Bochs Download bochs-2.6.8.tar.gz (Bochs x86 PC emulator) (sourceforge.net) 解压 tar -zxvf bochs-2.6.8.tar.gz 编译安装 配置 进入bochs-2.6.2文件夹&#xff0c;执行以下语句&#xff0c;其中我把bochs安装在了我的/home/minios/bochs目录下&#xff0c;读者…

基于H5的旅游攻略平台设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 系统开发相关技术 3 1.1框架技术 3 1.1.1 SSM框架 3 1.1.2 SpringBoot框架 3 1.1.3 Spring框架 3 1.2开发语言 3 1.2.1 HTML 3 1.2.2 JAVA 4 1.2.3 JavaScript 4 1.3数据库 4 1.4本章小结 4 2 系统分析 5 2.1 可行性分析 5 2.2 功能需求分…

一站式数据采集物联网平台:智能化解决方案,让数据管理更高效、更安全

JVS物联网平台的定位 JVS是企业信息化的“一站式解决方案”&#xff0c;其中包括了基础的数字化底座、各种企业级能力、企业内常见的应用&#xff0c;如下图所示&#xff1a; 整体平台能力层有三大基础能力&#xff1a; 低代码用于业务的定义;数据分析套件用于数据的自助式分…

HTML静态网页成品作业(HTML+CSS)——家乡漳州介绍设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…