前端学习笔记-8.3Vue实战简易的音乐播放器

数据方面用的是mock.js,真实的模拟请求。
这个项目用到的技术栈:
vue + webpack + axios
实现播放页的代码:

import LRC from "../components/LRC"
export default{
  name:"play",
  data(){
    return{
      playData:{
        songinfo:{

        },
        bitrate:{
          file_link:""
        }
      },
      currentTime:null,//当前播放时间
      durationTime:null//整体时间
    }
  },
  methods:{
    addEventListeners(){
      const self = this;
      // console.log(self.$refs.player);
      self.$refs.player.addEventListener('timeupdate',self._currentTime),
      self.$refs.player.addEventListener('canplay',self._durationTime)
    },
    removeEventListeners: function(){
      const self = this;
      self.$refs.player.removeEventListener('timeupdate',self._currentTime),
      self.$refs.player.removeEventListener('canplay',self._durationTime)
    },
    _currentTime(){//回调时间
      var self = this;
      self.currentTime = self.$refs.player.currentTime//currentTime是audio标签提供的获取当前播放时间的方法
    },
    _durationTime(){
      var self = this;
      self.durationTime = self.$refs.player.duration//duration是audio标签提供的获得歌曲播放整体时间的方法
    }
  },
  mounted(){
    this.addEventListeners()
  },
  beforeDestroyed(){
    this.removeEventListeners()
  },
  created(){
    const playUrl = this.HOST + "v1/restserver/ting?method=baidu.ting.song.play&songid="+this.$route.params.songid
    this.$axios.get(playUrl)
    .then(res => {
      this.playData = res.data
    })
    .catch(error => {
      console.log(error)
    })
  },
  components:{
    LRC
  }
}
import LRC from "../components/LRC"
export default{
  name:"play",
  data(){
    return{
      playData:{
        songinfo:{

        },
        bitrate:{
          file_link:""
        }
      },
      currentTime:null,//当前播放时间
      durationTime:null//整体时间
    }
  },
  methods:{
    addEventListeners(){
      const self = this;
      // console.log(self.$refs.player);
      self.$refs.player.addEventListener('timeupdate',self._currentTime),
      self.$refs.player.addEventListener('canplay',self._durationTime)
    },
    removeEventListeners: function(){
      const self = this;
      self.$refs.player.removeEventListener('timeupdate',self._currentTime),
      self.$refs.player.removeEventListener('canplay',self._durationTime)
    },
    _currentTime(){//回调时间
      var self = this;
      self.currentTime = self.$refs.player.currentTime//currentTime是audio标签提供的获取当前播放时间的方法
    },
    _durationTime(){
      var self = this;
      self.durationTime = self.$refs.player.duration//duration是audio标签提供的获得歌曲播放整体时间的方法
    }
  },
  mounted(){
    this.addEventListeners()
  },
  beforeDestroyed(){
    this.removeEventListeners()
  },
  created(){
    const playUrl = this.HOST + "v1/restserver/ting?method=baidu.ting.song.play&songid="+this.$route.params.songid
    this.$axios.get(playUrl)
    .then(res => {
      this.playData = res.data
    })
    .catch(error => {
      console.log(error)
    })
  },
  components:{
    LRC
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值