第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

QQ音樂(lè)播放器簡(jiǎn)易開(kāi)發(fā)

標(biāo)簽:
Java Html/CSS JavaScript

由于本人喜欢听音乐,然后突然某次抽筋,想用H5的audio来写一个模拟qq播放器功能的页面.说干就干.花了整整4天时间,其中搞歌词的lrc文件花了不少时间T.T啊.
亮点:
1.歌词同步:
支持主界面以及副界面的歌词同步功能,并且当前行高亮展示。
图片描述
2.多类目切换:
实现4大类目的不同歌单,当前歌曲黑底显示的功能.
图片描述
3.进度条以及主屏幕拖拽功能:
实现了进度条同步歌曲进度以及拖拽功能,3大界面(光盘界面,歌词界面,歌单界面)拖拽进行移动的功能.
4.歌曲顺序随机播放:
实现了一键随机播放顺序。
图片描述
5.动态歌词信息添加:
以封装为插件,所有歌曲信息动态添加,改歌曲只需要改date内的json文件就可以,data文件格式如下:
图片描述
经验:
1.css样式部分:
filter:blur(10px);filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='10');
可用来做模糊属性,其实第一次是在做bilibili时发现的.user-select:none;可以禁止用户选中字.
2.svg部分绘制:
手机部分为svg图像,由于当时还不会自己手写svg,所以只能用AI先画,画完导出svg格式,也是心疼自己.
3.H5的audio标签应用:

4.H5的audio的API文档运用:
audio.play();播放 audio.pause();暂停 audio.reday()加载完audio.duration播放时间audio.currentTime当前播放时间audio.ended当前歌曲播放结束
5.面向对象式封装 [ 已写为插件 ] :
再次用面向对象方式来书写整个脚本,最近经常用面向对象方式写js,偶尔用面向过程的方式书写的时候,感到额外的轻松,几乎不会报错.老牛已经将整个脚本封装为了插件,接口在下载源码后可查阅.有兴趣的朋友可以用用看.
6.动态歌单信息与歌单与对应类目表跳转:
由于处理过几次data的json格式文件,本次运用起来可以说相当的得心应手,类目表与对应的表之间的index值处理,由于4大类目很多小歌单,小歌单在切换大类目表后取消黑色背景这部分倒是让我头疼了好久.
7.运算符前置的运用:
在盒子拖拽部分,老牛第一次用--与++前置,用于先运算再执行.减少了先This._boxIndex++,再代入的坑余代码.值得注意的是mouseup中有不少执行动作,所以在最后解绑mouseup是必要的。
图片描述
8.点击判断与拖拽判断:
由于在song list模块中支持点击播放,而拖拽为移动,此处我用了鼠标按下抬起的时间差判断用户意向.
9.歌词分割:
对歌词lrc文件的处理是本章的难点之一,我将lrc格式以如下方式进行分割,将每句歌词存入一个lyric数组内,在每次歌曲播放时动态添加入lyricWrapper内,将时间格式存入cal数组内并将分:秒格式转换为秒的格式,用于给播放时间做计算。
图片描述
10.歌曲长度,进度条长度以及歌词同步运算:
首先将当前歌曲长度除60向下取整,歌曲长度的分,在将总长度-分钟数*60取小数点0位获取到歌曲长度的秒数,作为歌曲总长度,然后让显示器显示,设一个计时器.每200毫秒进行一次运算,先求当前播放的时间,求法与求总时间类似,进度条长度用当前歌曲时间/歌曲总时间作为百分比值进行显示,这边的歌词同步,我用了grep函数去循环当前秒数在之前处理好的歌词时间节点数组中去返回出比当前秒数小的时间个数减去1,再用dis存在并且dis不等于-1以及dis不等于上一个dis后再执行歌词的移动,移动的距离为每条高度,这样一是避免bug,二则增加运行性能,并不会每200毫秒就做一次无谓的歌词运动,值得注意的是原先我是用的$.inArray去计算当前时间戳在处理数组中的位子,但是发现用inArray在拖拽进度条之后由于,时间节点的计算需要正好踩到相等点才能有反应,所以会有延迟反应,这里有意思的是我最先使用addEventListener来监听audio的ended,然后出现了很多bug,之后我改用if判断,就解决了,具体原因我也不清楚.
11.冒泡事件
在进度条拖拽计算时,取消背景层的拖拽冒泡事件是必要的!!

點(diǎn)擊查看更多內(nèi)容
17人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消