网易云音乐移动端项目实战(分解中),深入分析

这篇博客详细介绍了如何在移动端实现网易云音乐的播放功能,包括切换歌曲、播放界面实现、获取歌词内容解析以及歌词根据时间滚动的逻辑。通过Vuex进行状态管理,使用SVG图标和audio元素进行交互,利用API获取歌词并动态滚动显示。
摘要由CSDN通过智能技术生成

import { mapState, mapMutations } from “vuex”;

export default {

computed: {

…mapState([“playlist”, “playlistindex”])

},

mounted() {

console.log(this.$refs.audio);

},

updated() {

console.log(this.playlist[this.playlistindex]);

},

methods: {

playEvent: function() {

if (this.$refs.audio.paused) {

this.$refs.audio.muted = false;

this.$refs.audio.play();

var targeticon = document.querySelector(“.right span svg use”);

targeticon.setAttribute(“xlink:href”, “#icon-pauseCircle”);

} else {

this.$refs.audio.muted = true;

this.$refs.audio.pause();

var targeticon = document.querySelector(“.right span svg use”);

targeticon.setAttribute(“xlink:href”, “#icon-bofang1”);

}

}

},

data() {

return {};

}

};

在这里插入图片描述

三、切换歌曲

store下的index.js

添加方法修改索引值

import { createStore } from ‘vuex’

export default createStore({

state: {

playlist:[{

id:138164304,

name:“不会再爱你了3.0”,

al:{

id:138164304,

name:“不会再爱你了3.0”,

pic:109951166868365440,

picUrl:“http://p4.music.126.net/ajXo6RG2aM8I5yYJuPmUrQ==/109951166868365438.jpg”

}}],

playlistindex:0

},

mutations: {

changeplaylist:function(state,value){

state.playlist = value;

},

setPlayindex:function(state,indexvalue){

state.playlistindex = indexvalue

}

},

actions: {//异步获取数据然后修改对应方法

},

modules: {

}

})

调用store里面的方法,修改对应的索引值

playlist.vue

播放全部
(共{ {playlist.tracks.length}}首)
+收藏({ {playlist.subscribedCount}})
{ {i+1}}
{ {item.name}}

{ {item}}

{ {item.al.name}}

只是修改了一些样式

play-controlor.vue

{ {playlist[playlistindex].al.name}}
滑动可以切换上下首哦

<svg class=“icon play” aria-hidden=“true” @click=“playEvent()”>

<audio

ref=“audio”

:src=“https://music.163.com/song/media/outer/url?id=${this.playlist[this.playlistindex].id}.mp3

四、播放界面实现
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值