整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          使用JS開發簡單的音樂播放器

          使用JS開發簡單的音樂播放器

          近,我們在教學生使用JavaScript,今天就帶大家開發一款簡單的音樂播放器。首先,最終效果如圖所示:

          首先,我們來編寫html界面index.html,代碼如下:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8" />

          <title></title>

          <link rel="stylesheet" type="text/css" href="css/style.css"/>

          <script src="js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>

          <script src="js/common.js" type="text/javascript" charset="utf-8"></script>

          </head>

          <body>

          <!--播放器-->

          <audio id="song" autoplay="autoplay"></audio>

          <!--整體結構-->

          <div id="boxDiv">

          <!--歌詞展示區域-->

          <div id="contentDiv">

          <!--歌詞顯示-->

          <div id="lrcDiv"></div>

          <!--上部陰影-->

          <span id="bgTopSpan"></span>

          <!--下部陰影-->

          <span id="bgBottomSpan"></span>

          </div>

          <!--控制區域-->

          <div id="controlDiv">

          <!--進度條-->

          <div id="progressDiv"></div>

          <!--進度條圓點-->

          <img id="pointerImg" src="img/audio/progress_pointer@2x.png"/>

          <!--播放時間-->

          <span id="playTimeSpan">00:00</span>

          <!--歌曲標題-->

          <span id="titleSpan"></span>

          <!--總時間-->

          <span id="totalTimeSpan">00:00</span>

          <!--按鈕區域-->

          <div id="buttonDiv">

          <!--上一首按鈕-->

          <img id="prevImg" src="img/audio/play_above_song@2x.png"/>

          <!--播放暫停按鈕-->

          <img id="playOrPauseImg" src="img/audio/play@2x.png"/>

          <!--下一首按鈕-->

          <img id="nextImg" src="img/audio/play_next_song@2x.png"/>

          </div>

          </div>

          </div>

          </body>

          </html>

          接下來,編寫style.css,代碼如下:

          body{

          margin: 0px;

          background-color: #ccc;

          }

          #boxDiv{

          width: 375px;

          height: 568px;

          margin: 10px auto;

          position: relative;

          }

          #contentDiv{

          width: 375px;

          height: 460px;

          background-image: url(../img/audio/play_bg@2x.png);

          overflow: hidden;

          }

          #lrcDiv{

          margin-top: 260px;

          }

          #lrcDiv span{

          display: block;

          line-height: 40px;

          text-align: center;

          color: white;

          font-size: 20px;

          }

          #bgTopSpan{

          position: absolute;

          display: block;

          width: 375px;

          height: 30px;

          top: 0px;

          background-image: url(../img/audio/play_top_shadow@2x.png);

          }

          #bgBottomSpan{

          top: 430px;

          position: absolute;

          background-image: url(../img/audio/play_bottom_shadow@2x.png);

          display: block;

          width: 375px;

          height: 30px;

          }

          #controlDiv{

          width: 375px;

          height: 180px;

          position: relative;

          background-color: white;

          }

          #progressDiv{

          background-color: red;

          height: 1.5px;

          width: 0px;

          }

          #pointerImg{

          width: 18px;

          height: 18px;

          position: absolute;

          top: -8.5px;

          left: -3px;

          }

          #playTimeSpan{

          display: block;

          position: absolute;

          font-size: 14px;

          width: 35px;

          top: 5px;

          left: 5px;

          }

          #totalTimeSpan{

          display: block;

          position: absolute;

          font-size: 14px;

          width: 35px;

          top: 5px;

          left: 335px;

          }

          #titleSpan{

          display: block;

          position: absolute;

          height: 30px;

          width: 295px;

          font-size: 20px;

          text-align: center;

          left: 40px;

          top: 5px;

          }

          #buttonDiv{

          margin-top: 40px;

          position: relative;

          }

          #prevImg{

          width: 40px;

          height: 40px;

          position: absolute;

          top: 20px;

          left: 60px;

          }

          #playOrPauseImg{

          width: 70px;

          height: 70px;

          position: absolute;

          top: 5px;

          left: 152px;

          }

          #nextImg{

          width: 40px;

          height: 40px;

          position: absolute;

          top: 20px;

          left: 275px;

          }

          最后,編寫common.js,代碼如下:

          $(function(){

          // 歌曲列表

          var playList=["紅日", "狼的誘惑", "漂洋過海來看你"];

          // 當前播放的歌曲序號

          var currentIndex=0;

          // 播放器的原生對象

          var audio=$("#song")[0];

          // 播放時間數組

          var timeArr=[];

          // 歌詞數組

          var lrcArr=[];

          // 調用播放前設置

          setup();

          // 播放歌曲

          playMusic();

          // 播放歌曲

          function playMusic(){

          // 播放歌曲

          audio.play();

          // 設置為暫停的圖片

          $("#playOrPauseImg").attr("src", "img/audio/pause@2x.png");

          }

          // 歌曲播放前設置

          function setup(){

          // 設置播放哪一首歌曲

          // img/audio/紅日.mp3

          audio.src="img/audio/" + playList[currentIndex] + ".mp3";

          // 設置歌曲的名字

          $("#titleSpan").text(playList[currentIndex]);

          // 設置歌詞

          setLrc();

          }

          // 設置歌詞

          function setLrc(){

          // 清空上一首的歌詞

          $("#lrcDiv span").remove();

          // 清空數組

          timeArr=[];

          lrcArr=[];

          // 加載歌詞文件

          $.get("img/audio/" + playList[currentIndex] + ".lrc", {}, function(data){

          if(data){

          // 按行切割字符串

          var arr=data.split("\n");

          // 分割歌詞

          for (var i=0; i < arr.length; i++) {

          // 分割時間和歌詞

          var tempArr=arr[i].split("]");

          if (tempArr.length > 1){

          // 添加時間和歌詞到數組

          timeArr.push(tempArr[0]);

          lrcArr.push(tempArr[1]);

          }

          }

          // 顯示歌詞

          for (var i=0; i < lrcArr.length; i++) {

          $("#lrcDiv").append("<span>"+lrcArr[i]+"</span>");

          }

          }

          });

          }

          // 播放暫停事件

          $("#playOrPauseImg").click(function(){

          // 如果播放器是暫停狀態

          if(audio.paused){

          // 繼續播放

          playMusic();

          }else{

          // 暫停

          audio.pause();

          // 變成播放的圖片

          $("#playOrPauseImg").attr("src", "img/audio/play@2x.png");

          }

          });

          // 上一首

          $("#prevImg").click(function(){

          // 如果是第一首,那么跳到最后一首

          if(currentIndex==0){

          currentIndex=playList.length - 1;

          }else{

          currentIndex--;

          }

          // 播放前設置

          setup();

          // 播放

          playMusic();

          });

          // 下一首

          $("#nextImg").click(function(){

          // 如果是最后一首,就跳到第一首

          if(currentIndex==playList.length - 1){

          currentIndex=0;

          }else{

          currentIndex++;

          }

          // 播放前設置

          setup();

          // 播放

          playMusic();

          });

          // 監聽播放器播放時間改變事件

          audio.addEventListener("timeupdate", function(){

          // 當前播放時間

          var currentTime=audio.currentTime;

          // 總時間

          var totalTime=audio.duration;

          // 當是數字的時候

          if(!isNaN(totalTime)){

          // 得到播放時間與總時長的比值

          var rate=currentTime / totalTime;

          // 設置時間顯示

          // 播放時間

          $("#playTimeSpan").text(getFormatterDate(currentTime));

          // 總時長

          $("#totalTimeSpan").text(getFormatterDate(totalTime));

          // 設置進度條

          $("#progressDiv").css("width", rate * 375 + "px");

          // 設置進度圓點

          $("#pointerImg").css("left", (375 - 15) * rate - 3 + "px");

          // 設置歌詞的顏色和內容的滾動

          for (var i=0; i < timeArr.length - 1; i++) {

          if(!isNaN(getTime(timeArr[i]))){

          // 當前播放時間大于等于i行的時間,并且小于下一行的時間

          if (currentTime >=getTime(timeArr[i]) && currentTime < getTime(timeArr[i+1])){

          // 當前行歌詞變紅色

          $("#lrcDiv span:eq("+i+")").css("color", "#FF0000");

          // 其他行歌詞變白色

          $("#lrcDiv span:not(:eq("+i+"))").css("color", "#FFFFFF");

          // 當前行歌詞滾動

          $("#lrcDiv").stop(false, true).animate({"margin-top": 260 - 40 * i + "px"}, 1000);

          }

          }

          }

          }

          });

          function getTime(timeStr){

          // 去掉左邊的[

          var arr=timeStr.split("[");

          if(arr.length > 1){

          // 得到右邊的時間

          var str=arr[1];

          // 分割分、秒

          var tempArr=str.split(":");

          // 分

          var m=parseInt(tempArr[0]);

          // 秒

          var s=parseFloat(tempArr[1]);

          return m * 60 + s;

          }

          return 0;

          }

          // 格式化時間(00:00)

          function getFormatterDate(time){

          // 分

          var m=parseInt(time / 60);

          // 秒

          var s=parseInt(time % 60);

          // 補零

          m=m > 9 ? m : "0" + m;

          s=s > 9 ? s : "0" + s;

          return m + ":" + s;

          }

          });

          圖片和歌曲、歌詞請自行下載,最后,可以運行試試了。是不是很有趣呢?想要學習更多的Java技術開發知識,關注“重慶千鋒”獲取更多的視頻教程,千鋒重慶IT培訓機構還提供兩周免費試聽課程,歡迎各位小伙伴申請試聽。

          Python中爬取音樂MP3文件通常需要遵循以下步驟:

          選擇目標網站:確定你想從哪個網站爬取音樂。

          分析網頁結構:使用瀏覽器的開發者工具查看網頁的HTML結構,找到音樂文件的鏈接。

          發送HTTP請求:使用requests庫發送HTTP請求獲取音樂文件的URL。

          下載文件:使用requests的response.content屬性或者shutil庫下載音樂文件。

          保存文件:將下載的內容保存為MP3文件。

          請注意,從網站上下載音樂可能違反版權法和網站的使用協議,因此在進行此類操作前,請確保你有權這么做,并且遵守相關法律法規。此外,許多音樂網站使用復雜的反爬蟲機制,直接爬取可能并不可行或合法。

          以下是一個簡單的Python代碼示例,用于說明如何使用requests庫下載文件:

          import requests

          # 目標音樂的URL

          music_url='http://example.com/some-music.mp3'

          # 發送GET請求

          response=requests.get(music_url, stream=True)

          # 檢查請求是否成功

          if response.status_code==200:

          # 指定本地保存的文件路徑

          local_filename='downloaded_music.mp3'

          # 打開本地文件準備寫入

          with open(local_filename, 'wb') as file:

          # 將響應內容復制到本地文件中

          for chunk in response.iter_content(chunk_size=1024):

          if chunk: # 過濾掉保持連接的keep-alive新塊

          file.write(chunk)

          print(f'Music file saved as {local_filename}')

          else:

          print(f'Failed to retrieve the MP3 file. Status code: {response.status_code}')


          在實際應用中,你需要替換music_url變量為實際的音樂文件URL。如果網站要求登錄或使用其他認證方式,你可能還需要處理身份驗證過程。此外,如果網站使用JavaScript動態加載內容,可能需要使用像Selenium這樣的工具來模擬瀏覽器行為。

          再次強調,未經授權下載版權保護的音樂是違法的,而且許多音樂服務提供商會采取措施阻止此類行為。始終確保你的行為合法且遵守網站的服務條款。

          了美化網站,我在網站上面添加了一個HTML懸浮音樂播放器,先來看看一下效果圖。

          如何在自己的網站上添加HTML懸浮音樂播放器呢?今天和你們分享

          首先申明三點:

          1、本播放器實際上是調用網易云音樂的音樂進行播放,音樂版權歸網易云音樂所有,僅供個人學習研究,用于商用的后果自負!

          2、本播放器的演示效果可以在我的博客首頁看到,默認支持所有Html和PHP環境的網站。

          3、本播放器可以使用電腦、手機、IPAD等設備訪問,自適應。)


          具體的操作方法:

          在網站源文件中(如果有單獨的頁腳文件,也可以放在頁腳文件里面)添加這三行代碼:

          <!--音樂播放器-->

          <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.10.0/jquery.min.js"></script>

          <script src="https://myhkw.cn/player/js/player.js" id="myhk" key="demo" m="1"></script>


          然后保存發布,在瀏覽器刷新網頁就看到效果了


          主站蜘蛛池模板: 亚洲AV日韩AV一区二区三曲| 精品一区二区三区色花堂| 亚洲av午夜精品一区二区三区| 在线欧美精品一区二区三区| 海角国精产品一区一区三区糖心 | 精品人妻一区二区三区四区在线| 一区二区三区免费在线视频 | 精品一区二区久久| 波多野结衣一区二区| 日本在线视频一区| 无码一区二区三区免费| 中文字幕一区在线观看视频| 无码日韩人妻AV一区免费l| 国产精品毛片一区二区三区| 成人区人妻精品一区二区三区 | 国产在线视频一区| 国产香蕉一区二区精品视频| 美女视频黄a视频全免费网站一区| 日韩免费视频一区二区| 人妻精品无码一区二区三区| 在线精品国产一区二区三区| 国产一区二区三区韩国女主播| 一区二区视频在线免费观看| 亚洲中文字幕在线无码一区二区| 国产丝袜一区二区三区在线观看| 免费一区二区三区| 日本一区二区三区精品国产| 亚洲国产成人久久综合一区| AV怡红院一区二区三区| 亚洲熟女www一区二区三区| 久久国产午夜精品一区二区三区| 中文字幕无线码一区二区 | 精品一区精品二区制服| 一区二区三区精品视频| 中文字幕乱码人妻一区二区三区| 国产日韩高清一区二区三区 | 久久精品动漫一区二区三区| 高清在线一区二区| 亚洲欧美国产国产综合一区 | 亚州日本乱码一区二区三区| 琪琪see色原网一区二区|