音乐播放器实战

实现效果

  1. 在搜索框中搜索歌曲,可以点击“搜索”按钮或者摁下回车键开始搜索
  2. 返回的结果会在左边显示,点击“播放”按钮开始播放,有MV的歌曲将会显示“播放MV”的按钮
  3. 选择一首歌曲开始播放时,右边会出现该歌曲的热门评论,有评论者的id,头像和内容
  4. 音乐在播放时,歌曲封面会360度转动,点击暂停后,封面也会停止

项目准备

音乐数据的axios接口:

使用axios返回response数据时,可以先使用console.log(response)在控制台打印输出,需要在页面展示的数据可以在如下对象中获取,比如:

获取歌曲名:

获取音乐地址:

代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>音乐播放器</title><style>li {list-style: none;}.main {float: left;width: 600px;margin: 0 auto;text-align: center;position: relative;left: 400px;}.reviews {float: right;width: 400px;}.right {float: left;width: 400px;position: relative;right: 400px;}.playing {transform: rotate(360deg);animation: rotation 20s linear infinite;}@keyframes rotation {from {transform: rotate(0deg);}to {transform: rotate(360deg);}}.mv {width: 800px;height: 450px;position: absolute;left: 367.5px;top: 167px;}</style>
</head><body>
<div id="app"><div class="main"><h1>音乐播放器</h1>请输入你查询的歌手或者歌曲:<input type="text" v-model="name" @keyup.enter="getSongs"><button @click="getSongs()">搜索</button><br><br>(搜索慢,请稍等两秒)<br> <br><audio v-bind:src="url" controls autoplay @play="play" @pause="pause"></audio><br> <br> <br> <br> <br><img v-bind:src="data:imageUrl" width="300px" height="300px"style="border-radius: 50%" :class="{playing:isplaying}"></div><div class="right"><p>音乐列表</p><ul><li v-for="item in songList">{{item.name}}<button @click="getSing(item.id)">播放</button><button @click="getMv(item.mvid)" v-if="item.mvid!==0">播放MV</button></li></ul></div><div class="mv" v-if="isshow"><video :src="mvUrl" controls width="800px" height="450px"></video></div><ul class="reviews"><p>热门评论:</p><li v-for="review in reviewList"><img v-bind:src="review.user.avatarUrl" width="20px" height="20px">{{review.user.nickname}}:{{review.content}}</li></ul>
</div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="http://unpkg.com/axios/dist/axios.min.js"></script><script>var vm = new Vue({el: "#app",data: {name: "",songList: [],url: "",imageUrl: "",reviewList: [],isplaying: "",mvUrl: "",isshow: false},methods: {//获得歌曲的名字getSongs: function () {//回调函数需要使用that来传递thislet that = this;axios.get("https://autumnfish.cn/search?keywords=" + this.name).then(function (response) {that.songList = response.data.result.songs;}, function (error) {console.log(error)});},//获得歌曲的在线url地址getSing: function (id) {let that = this;axios.get("https://autumnfish.cn/song/url?id=" + id).then(function (response) {//注意返回的是数据数组,需要data[0]that.url = response.data.data[0].url;}, function (error) {console.log(error);})this.getImage(id);this.getReviews(id);},//获取歌曲封面getImage: function (id) {let that = this;axios.get("https://autumnfish.cn/song/detail?ids=" + id).then(function (response) {that.imageUrl = response.data.songs[0].al.picUrl;}, function (error) {console.log(error);})},//获取歌曲评论getReviews: function (id) {let that = this;axios.get("https://autumnfish.cn/comment/hot?type=0&id=" + id).then(function (response) {that.reviewList = response.data.hotComments;}, function (error) {console.log(error);})},//控制封面旋转play: function () {this.isplaying = true;},pause: function () {this.isplaying = false;},//获取MVgetMv: function (id) {let that = this;axios.get("https://autumnfish.cn/mv/url?id=" + id).then(function (response) {that.isshow = true;that.mvUrl = response.data.data.url;}, function (error) {console.log(error);});}}});
</script>
</body>
</html>

注意点

  1. 在函数中赋值给data数据时,不要忘记加上this
  2. 在回调函数中不要忘记定义that来传递this
  3. 注意response返回的是对象还是数组,数组需要加上data[0]
  4. 给img属性赋值时,要使用v-bind:src=""来进行属性绑定,而不是用<img src="{{xxx}}">
  5. audio音频监听播放和暂停可以使用@play和@pause方法

使用vue简单实现音乐播放器相关推荐

  1. uniapp实现简单的音乐播放器功能

    uniapp实现简单的音乐播放器功能 问题描述: 创建并返回内部audio上下文来控制音乐播放 我是直接用scroll-into-view来实现的这个 <scroll-view scroll-y ...

  2. vue+express实现音乐播放器

    vue+express实现音乐播放器 效果图 因为html中的audio的样式不能更改,所以我们自己制作UI,做成自己想要的样子,这样要实现滑动条跟audio的双向绑定,滑动条使用了vant的组件sl ...

  3. Vue实现仿音乐播放器项目总述以及阶段目录

    Github地址 https://github.com/badaoliumang/vuemusicplayer Vue实现仿音乐播放器各阶段代码 https://download.csdn.net/d ...

  4. Vue实现仿音乐播放器6-实现新歌速递与swiper轮播图切换

    前言 前面在首页已经完成今日推荐以及访问百度API获取数据,现在继续来完善home主页. 效果 新歌速递 swiper实现轮播图 实现 实现新歌速递 在components下新建新歌速递组件News_ ...

  5. Vue实现仿音乐播放器3-将项目托管到git以及github

    Github新建项目 1.登录github,点击右上角新建仓库 2.输入仓库名以及描述等,点击Create resposity 3.新建仓库完成后,右边有个clone or download,复制SS ...

  6. android 简单的音乐播放器实现播放模式的切换

    以前写过一篇简单的音乐播放器,但是这个播放器没有实现播放模式的切换,在项目中要实现两个播放模式,循环播放和随机播放,经过这两天的努力搞定了,界面比较粗糙.可以先看一下前面的简单音乐播放器,详细的就不说 ...

  7. android 简单的音乐播放器

    在项目开发过程中需要一个简单的音频播放的功能,需求很简单,只需要能够播放一个指定文件夹的全部mp3和wav音频文件就可以,谷歌给我们提供了一套比较完整的API,使得我们可以很简单的写出一个简易的音乐播 ...

  8. 好程序员前端分享使用JS开发简单的音乐播放器

    好程序员前端分享使用JS开发简单的音乐播放器,最近,我们在教学生使用JavaScript,今天就带大家开发一款简单的音乐播放器.首先,最终效果如图所示: 首先,我们来编写html界面index.htm ...

  9. 自制一个简单的音乐播放器

    这两天刚学完了contentprovider和service组件,就综合下所学的,自制了一个简单的音乐播放器. 代码如下: 主activity代码 public class MainActivity ...

  10. 用Qt写一个简单的音乐播放器(三):增加界面(播放跳转与音量控制)

    一.前言 在用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐中,我们已经知道如何去使用QMediaPlayer播放音乐. 在用Qt写一个简单的音乐播放器(二):增加界面(开始和 ...

最新文章

  1. 北理计算机教案,北理工版三年级信息技术教案重点.docx
  2. 任务七:实现常见的技术产品官网的页面架构及样式布局
  3. [转载] C++ STL之 vector的capacity和size属性区别
  4. 指针数组和数组指针的本质(四十一)
  5. 如何把多个PDF页面合并成一页PDF - PDF页面合并器使用方法
  6. 74cms搭建 2021.03.13
  7. 我们是如何解决偶发性的 502 错误的
  8. python删除word表格中的某一行_python读取word 中指定位置的表格及表格数据
  9. 基于mina框架的GPS设备与服务器之间的交互
  10. mysql cluster 分片_MySQL Cluster --01
  11. Dubbo相关问题如何用管程实现异步转同步?
  12. Photoshop制作逼真燃烧的文字效果
  13. 5分绩点转4分_5分制绩点换算成4分制(5.0绩点计算器在线)
  14. Weakly Guiding Fibers(弱导光纤)
  15. 小程序跳到h5页面_小程序如何跳转h5页面
  16. 微信小程序发布上线流程
  17. app小程序手机端Python爬虫实战06UiSelector文本、className定位方式
  18. 【四足机器人】学习笔记 足端轨迹规划和步态规划
  19. Scrapy的基础知识
  20. 互联网晚报 |10/27 星期四 | 段永平六次加仓腾讯;​美团开始招聘香港业务人员;​海南将面向全国发放5300万元旅游消费券...

热门文章

  1. 模块化开发RequireJS之shim配置
  2. 手机总是显示服务器太忙,手机总提示服务器太忙请稍后重试
  3. 观《怦然心动》之后的感悟
  4. 常见的电子邮箱有哪些?电子邮箱品牌大全
  5. edp协议 netty_使用esp8266 arduino 通过EDP协议 将数据传递到onenet平台
  6. 数字的算法--大数加法
  7. 数据从hana倒回Oracle的方法,SAP HANA SLT 将Oracle表 数据同步到HANA数据库
  8. 如何用Python记录微信撤回的消息
  9. 记录自己关于Linux的学习和RHCSA、RHCE认证相关
  10. 如何用GBD确认函数属于哪个库