天給大家做一個音樂播放器,源碼都在下面,大家多多提意見哈
效果圖:
1、首頁
2、底部播放控件
3、播放頁面
4、播放列表
5、排行榜
6、音樂搜索
輸入搜索關鍵詞,點擊放大鏡圖標
7、側邊欄
1、輪播圖
首先感謝作者ShanaMaid/vue-image-scroll開源的代碼,我把代碼copy下來自己進行了一點修改(沒有手指滑動效果),因為這是移動端,少不了的手指滑動切換,所以添加了vue-touch(偷偷告訴你,vue-touch的next分支還是支持vue2.0的)。
地址:https://github.com/hzzly/MagicMusic/blob/master/src/components/banner.vue
2、歌曲操作(喜歡,分享,加入播放列表)動畫、播放列表展開與刪除歌曲動畫Vue提供了transition的封裝組件,在下列情形中,可以給任何元素和組件添加 entering/leaving 過渡
條件渲染 (使用 v-if)
條件展示 (使用 v-show)
動態(tài)組件
組件根節(jié)點
transition-group一組過度動畫,這里有個小坑的,之前看官網(wǎng)列表過渡的栗子,給每一項設置唯一的key值,一般都會用index。所以在做的時候就把index傳給key,結果過渡老是不對,后來換成對應的item就正常了(生無可戀臉)。
3、直線進度條、弧形進度條
西班牙建筑大師曾說過:“直線屬于人類,曲線則歸于上帝”。在這里我大膽的使用了弧形來作為進度條,(幾大熱門音樂APP貌似還沒有弧形進度條)。
這里我用到了Vue的綁定內聯(lián)樣式
4、本地存儲
將一些數(shù)據(jù)緩存到localStorage,可以減少Http請求,從而優(yōu)化頁面加載時間。
在這個項目中首頁歌曲列表以及搜索歷史用到了本地緩存,拿搜索歷史來舉栗:
5、圖片懶加載
使用了vue-lazyload插件
用法:
6、歌詞滾動與高亮
因為api提供的歌詞包括時間,如:
[03:57.280]原諒我這一生不羈放縱愛自由
所以首先要進行字符串切割:
然后在播放的監(jiān)聽事件中與播放的當前做對比:
到這就ok了
7、VUEX狀態(tài)管理
推薦官方調試工具 devtools extension
之前看到好多人寫的vuex,把整個項目的數(shù)據(jù)放到了一個state里,導致應用的所有狀態(tài)集中到一個很大的對象。但是,當應用變得很大時,store 對象會變得臃腫不堪。
所以我建議(個人見解,輕噴):將 store 分割到模塊(module)。每個模塊擁有自己的 state、mutation、action、getters。這樣方便管理與后期的維護。
車已到站??。
不知不覺寫了這么多,老鐵們湊合這看吧,覺得還行的可以點贊,需要完整代碼練習的加群:594959296 已經(jīng)上傳到群文件。
郡格我想現(xiàn)在喜歡她的朋友不少,自從上了中國好聲音,這位獨特的嗓音吸引到不少人,今天就給大家介紹一下,劉郡格作曲家在哪能聽?試聽地址和完整歌詞就在文中,一起看看吧!
劉郡格作曲家試聽地址介紹
在線試聽傳送門:https://y.qq.com/n/yqq/song/0032DSdL2BhcQd.html
劉郡格作曲家完整歌詞欣賞
作曲家 (Live)
劉郡格
專輯:2018中國好聲音 第8期
2018中國好聲音 第8期
原唱:李榮浩
詞:李榮浩
曲:李榮浩
編曲設計:謝霆鋒
編曲:陳子龍
樂隊總監(jiān):劉卓
音響總監(jiān):金少剛
鍵盤:劉卓/李海郡
吉他:金天/崔萬平
貝斯:李九君
鼓:盧煒
打擊樂:劉效松
和音:劉芳/張煒/關冰效/趙晨
又很久沒見 我剪了長發(fā)
談怎么說話 談怎么啟發(fā)
怕歌詞寫得肉麻 怕浮夸
放一盤磁帶 七八十年代
才聽了一半 就悲傷起來
每一句里的感慨 都是現(xiàn)在
作曲家
寫一首我們一生最平凡的歌
作曲家
告訴你愛的人你多真 多深刻
作曲家
我還是你多年未見的老友啊
而你還是不太明白
孤獨是個節(jié)拍
頒一個獎牌 說一段對白
不談情說愛 也盡量精彩
沒幾個人生下來 不是天才
是個節(jié)拍
作曲家
寫一首我們一生
最平凡的歌
作曲家
告訴你愛的人
你多真 多深刻
作曲家
我還是你多年
未見的老友啊
幾天小編給大家分享了數(shù)據(jù)可視化分析,在文尾提及了網(wǎng)易云音樂歌詞爬取,今天小編給大家分享網(wǎng)易云音樂歌詞爬取方法。 本文的總體思路如下: 找到正確的URL,獲取源碼; 利用bs4解析源碼,獲取歌曲名和歌曲ID; 調用網(wǎng)易云歌曲API,獲取歌詞; 將歌詞寫入文件,并存入本地。 本文的目的是獲取網(wǎng)易云音樂的歌詞,并將歌詞存入到本地文件。整體的效果圖如下所示:
本文以民謠歌神趙雷為數(shù)據(jù)采集對象,專門采集他的歌曲歌詞,其他歌手的歌詞采集方式可以類推,下圖展示的是《成都》歌詞。
一般來說,網(wǎng)頁上顯示的URL就可以寫在程序中,運行程序之后就可以采集到我們想要的網(wǎng)頁源碼。But在網(wǎng)易云音樂網(wǎng)站中,這條路行不通,因為網(wǎng)頁中的URL是個假URL,真實的URL中是沒有/#號的。廢話不多說,直接上代碼。
本文利用requests、bs4、json和re模塊來采集網(wǎng)易云音樂歌詞,記得在程序中添加headers和反盜鏈referer以模擬瀏覽器,防止被網(wǎng)站拒絕訪問。這里的get_html方法專門用于獲取源碼,通常我們也要做異常處理,未雨綢繆。獲取到網(wǎng)頁源碼之后,分析源碼,發(fā)現(xiàn)歌曲的名字和ID藏的很深,縱里尋她千百度,發(fā)現(xiàn)她在源碼的294行,藏在下圖的標簽下,如下圖所示:
接下來我們利用美麗的湯來獲取目標信息,直接上代碼,如下圖:
此處要注意獲取ID的時候需要對link進行切片處理,得到的數(shù)字便是歌曲的ID;另外,歌曲名是通過get_text()方法獲取到的,最后利用zip函數(shù)將歌曲名和ID一一對應并進行返回。得到ID之后便可以進入到內頁獲取歌詞了,但是URL還是不給力,如下圖:
雖然我們可以明白的看到網(wǎng)頁上的白紙黑字呈現(xiàn)的歌詞信息,但是我們在該URL下卻無法獲取到歌詞信息。小編通過抓包,找到了歌詞的URL,發(fā)現(xiàn)其是POST請求還有一大堆看不懂的data,總之這個URL是不能為我們效力。那該點解呢?莫慌,小編找到了網(wǎng)易云音樂的API,只要把歌曲的ID放在API鏈接上便可以獲取到歌詞了,代碼如下:
在API中歌詞信息是以json格式加載的,所以需要利用json將其進行序列化解析出來,并配合正則表達式進行清洗歌詞,如果不用正則表達式進行清洗的話,得到原始的數(shù)據(jù)如下所示(此處以趙雷的歌曲《成都》為例):
很明顯歌詞前面有歌詞呈現(xiàn)的時間,對于我們來說其屬于雜質信息,因此需要利用正則表達式進行匹配。誠然,正則表達式并不是唯一的方法,小伙伴們也可以采取切片的方式或者其他方法進行數(shù)據(jù)清洗,在此就不贅述了。得到歌詞之后便將其寫入到文件中去,并存入到本地文件中,代碼如下:
現(xiàn)在只要我們運行程序,輸入歌手的ID之后,程序將自動把該歌手的所唱歌曲的歌詞抓取下來,并存到本地中。如本例中趙雷的ID是6731,輸入數(shù)字6731之后,趙雷的歌詞將會被抓取到,如下圖所示:
之后我們就可以在腳本程序的同一目錄下找到生成的歌詞文本,歌詞就被順利的爬取下來了。相信大家對網(wǎng)易云歌詞爬取已經(jīng)有了一定的認識了,不過easier said than down,小編建議大家動手親自敲一下代碼,在實踐中你會學的更快,學的更多的。這篇文章教會大家如何采集網(wǎng)易云歌詞,那網(wǎng)易云歌曲如何采集呢?且聽小編下回分解~~~
想學習更多Python網(wǎng)絡爬蟲與數(shù)據(jù)挖掘知識,可前往專業(yè)網(wǎng)站:http://pdcfighting.com/
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。