python + vue + electron实现本地音乐播放器

前言

因为受够了一般音乐播放软件的各种没什么用的功能以及各种垃圾广告,所以想自己搞一个音乐播放器来用,花了几天时间就搞了这么个东西,跟大家分享一下。
这个文档并不是针对前端新手的,所以如果你接触前端不久就简单了解一下就好。
代码已经在我的Github上了,代码里也加了点注释,真的对这个很感兴趣的可以下载下来自己试试。
这篇文章的叙述思路跟我实际开发的思路相同,主要分成三个步骤,下面将一步一步地说。

第一步,使用vue做个网页播放器

这是这个项目的重点,毕竟我本身就是个前端,先实现一个网页版来满足基本要求。

  1. 先写个audio标签

在网页上播放音乐,首先想到的肯定是audio标签,那么第一步就很简单了,在页面上放个audio。

 <audio :src="songUrl" ref="audio"></audio>

要是偷懒可以直接用audio自己带的功能来实现对音乐播放的控制,因为我以前常用酷狗,所以打算仿照它的样子搞一版,就不能用原生的内容要自己定义,这是前端内容里比较复杂的一点。此处内容我倒是不太想赘述,因为与之相关的内容很容易就能搜索到,就简单的贴一下相关代码。

  mounted () {
   
    this.audio = this.$refs.audio
    // 绑定监听事件实时获取歌曲时间信息
    this.audio.addEventListener('timeupdate', () => {
   
      this.currentTime = this.audio.currentTime
      this.$emit('update:current', this.currentTime)
      if (this.currentTime >= this.duration && this.currentTime > 0) {
    // 一首歌播放完自动播放下一首
        this.handoverSong('next')
      }
    })
    // 获取歌曲时长
    this.audio.addEventListener('canplay', () => {
   
      this.duration = this.audio.duration
    })
    // 歌曲可以播放时才允许播放
    this.audio.addEventListener('loadeddata', () => {
   
      if (this.audio.readyState >= 2 && this.playStatus) {
   
        this.playMusic()
      }
    })
  },
  methods: {
   
    playMusic () {
    // 切换播放状态
      if (this.duration > 0) {
   
        this.playStatus = true
        this.audio.play()
      }
    },
    pauseMusic () {
    // 暂停状态
      this.playStatus = false
      this.audio.pause()
    },
    clickIcon () {
    // 点击播放或者暂停按钮切换状态
      this.playStatus ? this.pauseMusic() : this.playMusic()
    },
    formatSeconds (value) {
    // 时间标准化为xx:xx
      let s = parseInt(value) // 秒
      s = isNaN(s) ? 0 : s
      let m = 0 // 分
      if (s > 60) {
   
        m = parseInt(s / 60)
        s = parseInt(s % 60)
      }
      return m.toString().padStart(2, '0') + ':' + s.toString().padStart(2, '0')
    },
    adjustSong (type) {
    // 快进快退操作
      if (this.duration > 0) {
   
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值