添加播放状态,首先是歌曲名称和时间

在index.html中添加

<div class="container fixed-bottom bg-white pb-4">
<hr/>
<div class="row my-2" id="player-status"> </div>
</div>

  然后调用audio自带的歌曲加载完毕事件函数和当前播放时间函数

musicAudio.addEventListener('loadedmetadata', () =>{
//音乐文件加载完毕,开始渲染播放状态
renderPlayerHTML(currentTrack.filename, musicAudio.duration)//后面一个参数是获取歌曲长度,默认是以秒为单位,需要后续处理转化为分,秒的形式
})
musicAudio.addEventListener('timeupdate', () => {
//更新播放器状态
updataProgressHTML(musicAudio.currentTime)//获取当前播放时间
})

  再编辑渲染播放状态函数和播放时间更新函数

const renderPlayerHTML = (name, duration) => {//渲染播放状态函数
const player = $('player-status')
const html = `<div class="col font-weight-bold">
正在播放:${name}
</div>
<div class="col">
<span id="current-seeker">00:00</span> / ${duration}
</div>`
player.innerHTML = html
}
const updataProgressHTML = (currentTime) => {
const seeker = $('current-seeker')
seeker.innerHTML = currentTime
}

  到这里播放状态功能就已实现,但需要注意的是audio自带的歌曲长度和当前播放长度是以秒为单位,需要通过一定的算法转换为分秒的形式

exports.converDuration = (time) => {
//计算分钟
const minutes = '0' + Math.floor(time / 60);
const seconds = '0' + Math.floor(time - minutes * 60);
return minutes.substr(-2) + ':' + seconds.substr(-2)
}

  然后开始制作进度条

向index.html中添加进度条

<div class="progress">
<div class="progress-bar bg-success" id="player-progress"role="progressbar" style="width: 0%;">0%</div>
</div>

  重新编辑播放器更新时间函数

musicAudio.addEventListener('timeupdate', () => {
//更新播放器状态
updataProgressHTML(musicAudio.currentTime, musicAudio.duration)//获取当前播放时间
})

  

const updataProgressHTML = (currentTime, duration) => {
const seeker = $('current-seeker')
seeker.innerHTML = converDuration(currentTime)
//计算播放的百分比
const progress = Math.floor(currentTime / duration * 100)
const bar = $('player-progress')
bar.innerHTML = progress + '%'
bar.style.width = progress + '%'
}

  

慕课网electron写音乐播放器教程,代码跟随教程变动(十)的更多相关文章

  1. 基于jQuery虾米音乐播放器样式代码

    分享一款基于jQuery虾米音乐播放器样式代码.这是一款基于jquery+html5实现的虾米音乐播放器源码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div c ...

  2. 微信小程序 写音乐播放器 slider组件 将value设置为0 真机测试滑块不能回到起点

    最近在用微信小程序写一个音频播放页面,做时间进度的时候用到了slider插件,但是在自然播放完成,或者上/下切换的时候,将slider的value属性值设为0,开发工具上滑块会回到起点,有效.但是真机 ...

  3. Android实现网络音乐播放器

    本文是一个简单的音乐播放器 布局代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayo ...

  4. android快捷简单的实现音乐播放器

    自己做了一个相对完整的音乐播放器,现在把播放模块提取出来,分享给大家.音乐播放器基本功能都实现了的,可能有些BUG,希望谅解. 播放器功能如下: 1.暂停,播放 2.拖动条实现,快进,快退 3.歌词同 ...

  5. 基于jQuery仿QQ音乐播放器网页版代码

    基于jQuery仿QQ音乐播放器网页版代码是一款黑色样式风格的网页QQ音乐播放器样式代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="m ...

  6. [ 原创 ]学习笔记-做一个Android音乐播放器是遇到的一些困难

    最近再做一个安卓的音乐播放器,是实验室里学长派的任务,我是在eclipse上进行开发的,由于没有android的基础,所以做起来困难重重. 首先是布局上的困难 1.layout里的控件属性不熟悉 2. ...

  7. 基于jplayer实现歌词同步的JS音乐播放器效果

    分享一款基于jplayer实现歌词同步的JS音乐播放器效果.这是一款基于jQuery实现的音乐播放器功能代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <textare ...

  8. [MFC] MFC音乐播放器 傻瓜级教程 网络 搜索歌曲 下载

    >目录< >——————————————————————< 1.建立工程  1.建立一个MFC工程,命名为Tao_Music 2.选择为基本对话框 3.包含Windows So ...

  9. android音乐播放器开发教程

    android音乐播放器开发教程 Android扫描sd卡和系统文件 Android 关于录音文件的编解码 实现米聊 微信一类的录音上传的功能 android操作sdcard中的多媒体文件——音乐列表 ...

随机推荐

  1. oralce如何修改默认的XDB监听端口

    Oracle9i默认的XML DB把HTTP的默认端口设为8080,这是一个太常用的端口了,很多别的WebServer都会使用这个端口, 如果我们安装了它,最好修改一下,避免冲突,如果不使用呢,就最好 ...

  2. 比较全面的一个PHP缓存类解析

    转自:http://www.blhere.com/1164.html 一.引论 PHP,一门最近几年兴起的web设计脚本语言,由于它的强大和可伸缩性,近几年来得到长足的发展,php相比传统的asp网站 ...

  3. 使用VirtualBox + Vagrant打造统一的开发环境

    https://blog.csdn.net/openn/article/details/54927375 配置步骤 安装VirtualBox 虚拟系统运行在VirtualBox中,类似的工具还有VMw ...

  4. Java练习 SDUT-1160_某年某月的天数

    C语言实验--某年某月的天数 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入年和月,判断该月有几天? Input ...

  5. HDU_1005:Number Sequence

    Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1 ...

  6. docker如何push镜像到docker hub个人的仓库

    docker如何push镜像到docker hub个人的仓库 step1——找到本地镜像的ID:docker images step2——登陆Hub:docker login --username=u ...

  7. @loj - 2434@ 「ZJOI2018」历史

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的 ...

  8. Linxu 用户和用户组管理1

    Linux 系统是一个多用户任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后 以这个账号的身份进入系统. 用户的账号一方面可以帮助系统管理员对使用系统的用户进 ...

  9. day5-python之递归与二分法

    一.递归的定义 递归调用是函数嵌套调用的一种特殊形式,函数在调用时,直接或间接调用了自身,就是递归调用 二.递归分为两个阶段:递推,回溯 age(5) = age(4) + 2 age(4) = ag ...

  10. Libev源码分析07:Linux下的eventfd简介

    #include <sys/eventfd.h> int eventfd(unsigned int initval, int flags); eventfd创建一个eventfd对象,该对 ...