实现网易云项目播放音乐功能
1.在compontents下创建playcontroller.vue
<template>
    <div class="playController">
        <div class="left">
            <img src="https://p1.music.126.net/R-Eg1aZcut8jKYM6UP5fvA==/109951167311919702.jpg" alt="">
            <div class="content">追梦赤子心</div>
            <div class="tips">横划划切换上下手</div>
        </div>
        <div class="right">
            <svg class="icon" aria-hidden="true">  <!--阿里巴巴矢量图标-->
                <use xlink:href="#icon-bofang1"></use><!--阿里巴巴矢量图标-->
            </svg>
            <svg class="icon" aria-hidden="true">  <!--阿里巴巴矢量图标-->
                <use xlink:href="#icon-liebiao1"></use><!--阿里巴巴矢量图标-->
            </svg>
        </div>
    </div>
</template>
<script>
    export default {
        name: "playController"
    }
</script>
2.在app.vue主组件中引入playController全局播放组件,在components中注册,组件名当标签名使用(挂载)
<template>
  <router-view/>
  <playController/>                                                       //使用单元
</template>
<script>
  import playController from "@/components/playController";      // 引入这个单元
  export default{
    components:{
      playController                //挂载单元
    }
  }
</script>
3.实现每次进入歌单 播放列表就会把playlist 改为当前歌单的中的一条歌曲进行播放
store/index.js存放模拟数据 和修改数据方法mutations
export default createStore({
  //组件之间共享的数据   15034
  state: {
    playlist:[ //音乐播放列表 要默认有一条播放歌曲
      {
        name: "追梦赤子心",
        id: 355992,
        al:{
          id: 35139,
          name: "追梦痴子心",
          pic: 19061133579343590,
          picUrl: "http://p3.music.126.net/XDncptlBJ4_LN3hLBx-8aw==/19061133579343591.jpg",
          pic_str: "19061133579343591",
        }
      },
    ] ,
    playCurrentIndex:0  // 当前播放歌曲在音乐列表中的下标
  },
  getters: {
  },
  mutations: {
    setPlaylist(state,value){  //定义一个函数,修改state中的playlist音乐播放器别表数据
      state.playlist =value;
    }
  },
  actions: {
  },
  modules: {
  }
})
- 
法①在listView中引入
 
 import store from '@/store/index.js'
3.进入歌单详情页面,将歌单中的播放列表传递到srore的playlist中去 commit触发mutation中的函数
musics.playlist = res.data.playlist;
store.commit('setPlaylist',musics.playlist.tracks)
- 
法② playController.vue通过下标获取歌单数据
 
<script>
    import {mapState} from 'vuex'
    export default {
        name: "playController",
        //获取当前播放歌曲的详细信息,就是通过下标 拿到数据
        computed:{
            
5.把playcontroll拿到playlist并播放
                    
                
                
            
        
浙公网安备 33010602011771号