當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
用JS实现歌词与播放音乐同步
生活随笔
收集整理的這篇文章主要介紹了
用JS实现歌词与播放音乐同步
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用JS實現歌詞與播放音樂同步
第一步:把歌詞解析成JS對象
參看我的上一篇文章:用JS解析LRC格式的歌詞
解析后的歌詞寫到頁面的一個列表中,效果如下:
主要HTML代碼:
CSS:
.lyric_area{/*歌詞顯示區域*/height: 300px; /*歌詞區域高度*/overflow: hidden; /*隱藏超出部分*/margin-top: 15px; } #lyric{/*歌詞列表*/line-height: 20px;/*行高,這個值要用在歌詞滾動距離上*/transition-duration: 600ms;/*滾動速度*/} #lyric .lineHigh{/*高亮行*/color: red; }第二步:播放音樂時讓當前行高亮顯示并向上滾動
解析后的歌詞放在oLRC對象的ms數組中,呈現以下形態:
ms : [
{t: “0.590”, c: “沙漠駱駝 - 展展與羅羅”}
{t: “2.970”, c: “詞:展展與羅羅”}
{t: “4.460”, c: “曲:展展與羅羅”}
{t: “26.450”, c: “我要穿越這片沙漠”}
{t: “28.510”, c: “找尋真的自我”}
{t: “30.500”, c: “身邊只有一匹駱駝陪我”}
… …
]
ms[i].t是歌詞的開始時間,ms[i].c是歌詞內容。
現在歌詞內容已經寫在上面的<ul>列表中了,我們要做的是讓高亮歌詞與播放同步。
歌詞與播放同步的關鍵是從播放器獲取當前時間,這需要監聽audio對象的timeupdate事件,該事件在播放位置發生變化時觸發,再從audio對象的currentTime屬性中可取到當前播放時間。
滾動歌詞使用的是CSS的變換函數transform:translateY(長度),它可以把歌詞容器整體上移指定長度,由于容器外的div標簽設置了overflow: hidden;,所以感覺歌詞在向上滾動了。
總結
以上是生活随笔為你收集整理的用JS实现歌词与播放音乐同步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java9 javascript_[Ja
- 下一篇: 第2期:网页动画制作(CSS+JS)