本文实例讲述了vue实现的网易云音乐在线播放和下载功能。分享给大家供大家参考,具体如下:

效果如图:

完整代码:

Document

html,

body {

height: 100%;

padding: 0;

margin: 0;

}

#app {

height: 100%;

display: flex;

}

#app>#left {

flex: 1;

background-color: skyblue;

text-align: center;

/* 超出滚动 */

overflow: scroll;

}

#app>#right {

flex: 1;

background-color: orange;

}

ul {

list-style: none;

padding: 0;

}

input {

width: 469px;

height: 56px;

margin: 10px auto;

border-radius: 10px;

outline: none;

font-size: 24px;

border: 0;

padding-left: 15px;

}

#left li {

width: 451px;

/* height: 35px; */

margin: 0 auto;

font-weight: 700;

border: 2px solid black;

line-height: 35px;

color: white;

background-color: cadetblue;

overflow: hidden;

text-overflow: ellipsis;

display: -webkit-box;

max-height: 35px;

-webkit-line-clamp: 1;

-webkit-box-orient: vertical;

}

#left li:hover {

cursor: pointer;

background-color: greenyellow;

color: red;

}

#right {

position: relative;

overflow: scroll;

}

audio {

/* position: absolute;

left: 50%;

transform: translateX(-50%) translateY(46px); */

display: block;

margin: 0 auto;

}

/* li标签过渡的样式 */

.list-item {

display: inline-block;

margin-right: 10px;

}

.list-enter-active,

.list-leave-active {

transition: all 1s;

}

.list-enter,

.list-leave-to{

opacity: 0;

transform: translateX(100px);

}

/* 设置专辑图片样式 */

.cover{

width: 260px;

height: 260px;

border-radius: 50%;

display: block;

margin: 10px auto;

/* transform: translateX(-50%) translateY(10px); */

}

/* 动画 */

@keyframes autoRotate{

to{

transform: rotateZ(360deg);

}

}

/* 动画播放样式 */

.autoRotate{

/* 动画名,一直播放iteration(一直重复),匀速(timing),时间2s(duration),状态(running) */

animation-name:autoRotate;

animation-iteration-count:infinite;

animation-timing-function: linear;

animation-duration:2s;

animation-play-state:running;

}

/* 动画状态 */

.pause{

animation-play-state:paused;

}

/* 评论 */

.comment{

height: 150px;

/* background-color: skyblue; */

}

.comment li{

display: flex;

padding: 5px;

}

.comment li .left{

width: 120px;

height: 120px;

}

.comment li .left img{

width: 100px;

}

.comment li a{

text-decoration: none;

font-weight: bold;

color: crimson;

}

{{item.name}}-----演唱者:{{item.artists[0].name}}

精彩评论

  • {{item.user.nickname}}

    {{item.content}}

rightv>

//代码

/*

音乐播放器

需求1:

搜索歌曲

发送网络请求

回调函数函数中渲染数据

有动画

需求2:

双击播放歌曲

根据id调用接口

查询数据

通过audio播放歌曲

获取专辑的信息 进而获取封面 展示给用户

需求3

播放歌曲时

封面转动

暂停播放时

封面停止转动

步骤:

1.先写动画样式,动画命名为autoRotate,因为是一直运动,所以使用animation;

2.同时写一个暂停的样式,命名为pause,给data添加一个isPause来存值,默认给一个false

3.添加运动和暂停的步骤是添加上面的两个类,但是pause要使用v-bind指令来设置属性;

4.在audio音频里添加播放和暂停的点击方法,在对应的方法里设置对应的布尔值;

需求4

点击播放歌曲

同时获取这首歌的评论

步骤:1.在数据中声明一个comments的空数组,用来存评论内容

2.在播放方法中写获取评论的接口

3.在响应体里将内容赋值给声明的数组

*/

let app = new Vue({

el: "#app",

data: {

inputValue: '',//输入的值

musicList: [], //存储歌列表

songUrl: '',//播放歌曲的url

picUrl:'',//获取专辑信息

isPause:false,//专辑是否暂停

comments:[]//评论内容

},

methods: {

// li标签过渡的事件

randomIndex: function () {

return Math.floor(Math.random() * this.items.length)

},

add: function () {

this.items.splice(this.randomIndex(), 0, this.nextNum++)

},

remove: function () {

this.items.splice(this.randomIndex(), 1)

},

//搜索歌曲事件

search() {

//调用接口

this.$http.get(`https://autumnfish.cn/search?keywords=${this.inputValue}`).then(response => {

// console.log(response);

//将结果添加到musicList中

this.musicList = response.body.result.songs;

}, response => {

// error callback

alert("出错了")

});

},

// 双击播放歌曲事件,接收传过来的id

playMusic(id,albumId) {

//获取歌曲的url

this.$http.get(`https://autumnfish.cn/song/url?id=${id}`).then(response => {

// console.log(response);

//将结果添加到musicList中

this.songUrl = response.body.data[0].url;

}, response => {

// error callback

alert("出错了")

});

// 获取专辑信息

this.$http.get(`https://autumnfish.cn/album?id=${albumId}`).then(res=>{

this.picUrl=res.body.album.blurPicUrl;

}),err=>{}

//获取评论内容接口

this.$http.get(`https://autumnfish.cn/comment/music?id=${id}&limit=1`).then(res=>{

console.log(res);

this.comments=res.body.hotComments;

}),err=>{

alert('信息错误')

}

},

//钩子函数:动画执行完后去除了style属性,不去掉会卡顿

afterEnter(el){

el.style='';

},

// 专辑图片旋转事件

play(){

console.log('播放');

this.isPause=false;

},

pause(){

console.log('暂停');

this.isPause=true;

}

},

})

希望本文所述对大家vue.js程序设计有所帮助。

Java和vue实现音乐播放器_vue实现的网易云音乐在线播放和下载功能案例相关推荐

  1. 音乐播放器项目:使用网易云音乐api开发网页版音乐播放器开发难题(一)

    将子组件中获取到后台的url参数传递给父组件 解决方法: axios({//获取urlurl:'http://localhost:3000/song/url',method:'get',params: ...

  2. 音乐无界限,听见好时光—网易云音乐Linux版震撼来袭!

    为了带来更好的音乐体验,实现对音乐高品质的追求,经过网易云音乐与深度科技团队长达半年多的联合开发,大家期待已久的网易云音乐正式登陆 Linux 平台! 网易云音乐是一款专注于发现与分享的音乐产品,依托 ...

  3. html网易云音乐图片轮播效果,看网易云音乐如何在界面设计中突出特色功能

    一般观念中一款产品的功能越具特色就会放在越突出的位置,但是如果一款产品层级较深,底层架构复杂导致若干功能优先级并列,那在UI设计中如何做到强化和弱化呢? 作为网易云音乐陈年老粉,不得不说这款产品做的真 ...

  4. 解锁网易云音乐小工具_什么?网易云音乐又变灰了

    目前音乐市场主要有三大巨头:酷狗音乐,QQ音乐,网易云音乐.QQ音乐与网易云音乐进入市场都较晚,但是网易云音乐凭借灵活的音乐社交玩法积累了非常多的用户,而QQ音乐凭借着有钱优势,购买了很多音乐版权,网 ...

  5. 网易云音乐称酷狗抄袭计算机,网易云音乐称酷狗抄袭 双方有何恩怨?

    来源标题:网易云音乐谴责酷狗音乐"山寨"其推歌功能.页面设计等 2月2日,网易云音乐在官方微博发布致酷狗音乐的公告,声明酷狗音乐平台"山寨"网易云平台上&quo ...

  6. android 网易云音乐上滑动画,Android 仿网易云音乐 音轨跳动效果

    网易云音乐的Loading效果,大家应该也比较熟悉了,效果是一个红色音轨不断跳动的效果,一般用于Loading等待时填充使用.本篇来自定义这个效果. Android 仿网易云音乐 音轨跳动View.g ...

  7. Android漂亮的音乐歌词控件,仿网易云音乐滑动效果

    前言: 项目有个音乐播发器功能,实现音乐在线播放,同时需要带有歌词显示功能.网上也找过,在github找到勉强能用的控件,只是效果还是差强人意,不是特别好.于是趁有空的时间,参考了网上的部分demo, ...

  8. 音乐正版率关键数据缺失,网易云音乐IPO胜算几何?

    5月26日晚间,网易云音乐正式向港交所递交招股书,招股书对其拥有的曲库数量.独立音乐人作品数量进行了披露,但并未披露其所收录音乐作品的正版率.<财经>E法也再次指出了网易云音乐的这一核心问 ...

  9. windows7经典开机音乐_极简之美——网易云音乐云石蓝牙音箱 拆机评测

    极简之美--网易云音乐云石蓝牙音箱 拆机评测 选购过程 说起随身蓝牙音箱,在手机厂商纷纷淘汰3.5mm耳机口之后,一副蓝牙耳机以及一个随身蓝牙音箱应该已经是标配了. 我也有这样的需求,我是为了今年再去 ...

最新文章

  1. 执行计划组件、组件、老化
  2. 头条的_signature这个如何_今日头条详细页面的cookie加密
  3. [20161031]rman备份与数据文件OS块.txt
  4. 安装 Ffmpeg 步骤
  5. 前端学习(2888):如何短时间内实现v-for 模板编译1
  6. 依赖注入底层反射原理_PHP反射机制实现自动依赖注入
  7. 基于zookeeper实现配置集中管理【转】
  8. Tomcat端口占用的处理方式
  9. Luogu P5201 [USACO19JAN]Shortcut 最短路树???
  10. java抛出自定义异常_令Java程序员头疼的异常报错,你遇到过哪些?
  11. 技术实力 gw4c20b型2.0t汽油发_自动挡轻客B型房车底盘,大通与依维柯哪家强?...
  12. Makima修正Hermite插值
  13. IE插件加载问题调试
  14. Centos 7安装Oracle12c RAC
  15. 一大堆概率概念_拔剑-浆糊的传说_新浪博客
  16. 点陶极速版《隐私政策》
  17. 罗克韦尔PLC编程软件ControlLogix平台
  18. 博客园的整改了,我们还能去哪些技术社区写博客
  19. 计算机体系结构(国防科大)-第七章-多处理机
  20. MySQL编程笔记:数据库和数据库实例

热门文章

  1. 小米笔记本air13——小米笔记本光标消失的解决【实测成功】
  2. 干货 | 携程酒店iOS动态View的探索
  3. 电脑彻底删除的文件怎么恢复
  4. 中国武侠片令人捧腹的50条定律
  5. Android Studio科普篇——1.几个个性化设置
  6. 计算机主机电源有哪些,电脑主机主要配件都有哪些 主机的电源功率是多大
  7. 2018.10.29 bzoj1023: [SHOI2008]cactus仙人掌图(仙人掌+单调队列优化dp)
  8. QDialog----简介
  9. 低学历如何get满意offer
  10. MAD,现代安卓开发技术:Android 领域开发方式的重大变革~