基于vue框架怎样实现一个音乐播放器
Admin 2022-09-07 群英技术资讯 747 次浏览
先看效果
代码中使用的ivewUI前端框架
使用的是font-awesome字体图标 需要先安装 npm install font-awesome --save
<template>
<Card style="width:100%">
<template #title >
<Icon type="ios-musical-notes"></Icon>
音乐播放器
</template>
<audio ref="audio" controls="controls" style="width:100%;" :preload="preload">
<source />
</audio>
<h4 style="width: 100%;height: 50px;line-height: 50px; text-align: center;">{{namesong}}</h4>
<div wrap style="width: 100%; height: 150px;line-height: 150px; text-align: center;">
<ButtonGroup shape="circle">
<Button type="info" title="上一首" size="large" @click="up(Indexsong)"><i class="fa fa-backward"></i> </Button>
<Button type="info" title="播放/暂停" size="large" @click="play(namesong,Indexsong)"><i :class="playButton"></i></Button><!--fa fa-pause-->
<Button type="info" title="下一首" size="large" @click="down(Indexsong)" ><i class="fa fa-forward"></i></Button>
<Button type="info" title="列表" size="large" @click="IssongListshowhide" ><i class="fa fa-th-list"></i></Button>
</ButtonGroup>
</div>
<Table :columns="columns" :data="songList" v-show="songListhidden" @click="IssongListshowhide"></Table>
</Card>
</template>
<script>
export default {
data () {
return {
optiontype:["up","play","down"],
preload:'auto',
Indexsong:0,
namesong: '',
playButton:'fa fa-play',
musicUrl:'',
columns: [
{
type: 'index',
title: '序号',
align: 'center',
width: 100,
render: (h, params) => {
return h(
'span',
params.index
)
}
},
{
title: '歌曲',
key: 'song'
},
{
title: '操作',
render: (h, params) => {
return h('div', [
h(
'Button',
{
props: {
type: 'info',
size: 'small'
},
style: {
marginRight: '5px'
},
on: {
click: () => {
this.play(params.row.song,params.index);
}
}
},
'播放'
)
])
}
}
],
songList: [
{
song: '金莎-星月神话.mp3',
},
{
song: '萌萌哒天团-帝都.mp3',
},
{
song: '文武贝-夜的钢琴曲5.mp3',
},
{
song: '乌兰托娅-花桥流水.mp3',
},
{
song: '许嵩-山水之间.mp3',
},
{
song: '张杰-三生三世.mp3',
}
],
songListhidden:false
}
},
// computed: { ///存在问题,未能 到底预期效果以换他方式created里实现
// namesong:{
// // setter
// get() {
// console.log("get:"+)
// return this.songList[1].song;
// }
// ,
// set(newval) {
// console.log("set:"+newval)
// return newval;
// }
// }
// },
methods:{
//切换上一曲
up(index){
let vm = this;
if(index===0){
this.$Message.success({ title: '提示', content: '已经到顶了喔' })
return
}
vm.Indexsong=--index;
vm.playButton='fa fa-pause';
vm.namesong=vm.songList[vm.Indexsong].song;
console.log("Indexsong:"+vm.Indexsong+",namesong:"+vm.namesong)
let audioplay= this.$refs.audio//播放
vm.musicUrl= require("@/assets/Music/"+vm.namesong)
audioplay.src = vm.musicUrl;
audioplay.play();
},
//切换下一曲
down(index){
let vm = this;
if(index===vm.songList.length-1){
this.$Message.success({ title: '提示', content: '已经到底了喔' })
return
}
vm.Indexsong=++index;
vm.playButton='fa fa-pause';
vm.namesong=vm.songList[vm.Indexsong].song;
console.log("Indexsong:"+vm.Indexsong+",namesong:"+vm.namesong)
let audioplay= this.$refs.audio
vm.musicUrl= require("@/assets/Music/"+vm.namesong)
audioplay.src = vm.musicUrl;
audioplay.play();//播放
},
play(song,index){
let vm = this;
vm.Indexsong=index;
console.log("Indexsong:"+
vm.Indexsong+",song:"+song+",+playButton:"+vm.playButton)
if(vm.namesong===song){
if(vm.playButton==="fa fa-play"){
vm.playButton='fa fa-pause';
let audioplay= this.$refs.audio
vm.musicUrl= require("@/assets/Music/"+vm.namesong)
audioplay.src = vm.musicUrl;
audioplay.play();//播放
}else{
vm.playButton="fa fa-play";
this.$refs.audio.pause();//暂停
}
}else if(vm.namesong!=song){
console.log("song:"+song)
console.log("playButton:"+vm.playButton)
vm.playButton='fa fa-pause';
vm.namesong=song;
let audioplay= this.$refs.audio
console.log("namesong:"+vm.namesong)
vm.musicUrl= require("@/assets/Music/"+vm.namesong)
audioplay.src = vm.musicUrl;
audioplay.play();//播放
}
},
IssongListshowhide(){
let vm = this;
vm.songListhidden = !vm.songListhidden;
}
}
,
created(){
//赋值变量
this.namesong = this.songList[1].song;
this.Indexsong=1;
}
}
</script>
关于“基于vue框架怎样实现一个音乐播放器”的内容今天就到这,感谢各位的阅读,大家可以动手实际看看,对大家加深理解更有帮助哦。如果想了解更多相关内容的文章,关注我们,群英网络小编每天都会为大家更新不同的知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了网址URL中特殊字符转义编码,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
判断方法:1、使用“document.getElementById("id值")”语句根据指定id值获取div元素对象;2、利用if语句判断div是否存在,语法“if (div元素对象){//元素存在}else{//元素不存在}”。
图例组件展现了不同系列的标记(symbol),颜色和名字,可以通过点击图例控制哪些系列不显示,这篇文章主要给大家介绍了关于Echarts图例组件的相关资料,需要的朋友可以参考下
本文主要介绍了浅谈JS数组内置遍历方法有哪些和区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文给大家分享的是关于vue项目中封装axios的内容,对于实现封装axios下面有详细的介绍及示例代码,需要的朋友可以参考,接下来就跟随小编来学习一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008