html5+原生js製作一個超簡易音樂播放器

html5+原生js製作一個簡易音樂播放器

最近學了html5的audio標籤,然後就想着做一個音樂播放器。

下面是效果圖

emmmmm有點醜陋,隨着以後學的更多,之後會完善噠~
播放器

播放器實現的功能

  • 點擊播放
  • 自動循環播放
  • 上一首
  • 下一首

下面是具體代碼

註釋寫的很詳細,大家可以複製之後體驗~
歌我就隨便選了三個,可以修改成自己喜歡的。

html
<!DOCTYPE HTML>
<html>

<head>
  <meta charset="utf-8">
  <title>播放器練習</title>
  <link rel="stylesheet" type="text/css" href="vido.css">
  <script type="text/javascript" src="vido2.js"></script>
</head>

<body>
  <div id="container">
    <div id="player">
      <audio src="./music/孤身.mp3" controls autoplay id="aud"></audio>
      <div id="buttons">
        <button id="btpre">上一首</button>
        <button id="next">下一首</button>
      </div>
      <div id="list">
        <ul>
          <li class="play">孤身</li>
          <li>花香</li>
          <li>這一生關於你的風景</li>
        </ul>
      </div>
    </div>
  </div>


</body>

</html>
css
*{
  margin: 0;
  padding: 0;
}
#container{
width: 350px;
height: 500px;
background-color: cornflowerblue;
margin: auto;
/* opacity:0.1; */
}
#player{
  height: 100px;
  width: 350px;
  background-color: rgb(30, 108, 172);
  
}
#player audio{
  margin: 20px 20px 0px 20px;
}
#buttons{
  width: 150px;
  height: 20px;
  margin-left: 80px;
  display: inline-block;
}
#btpre{
float: left;
margin-right: 40px;
}
#next{
  float: right;
}
#list ul{
  text-align: center;
  list-style-type: none;
}
#list li{
  width: 350px;
  height: 35px;
  line-height: 35px;
  border-bottom:1px solid white ;
  cursor: pointer;
}
.play{
  background-color: rgb(150, 177, 228) ;
  color: white;
  font-size: bold;
}
js
window.onload = function () {
  var btnPre = document.getElementById('btpre');
  var btnNext = document.getElementById('next');
  var list = document.getElementById('list');
  var aud = document.getElementById('aud');
  var li = list.getElementsByTagName('li');
  var mymusic = ['./music/孤身.mp3', './music/花香.mp3', './music/這一生關於你的風景.mp3'];//把地址存在一個數組裏
  //點擊播放
  for (var i = 0; i < li.length; i++) {
    li[i].onclick = function () {
      for (var i = 0; i < li.length; i++) {
        if (this == li[i]) {
          li[i].className = 'play';
          aud.src = mymusic[i];
          aud.play();
        } else {
          li[i].className = '';

        }
      }
    }
  }
  //獲取正在播放的音樂
  function getPlay() {
    for (var r = 0; r < li.length; r++) {
      if (li[r].getAttribute('class') == 'play') {
        return r;

      }
    }
  }
  //循環播放
  aud.onended = function () {
    var a = getPlay();
    a++;
    if (a > li.length - 1) {
      a = 0;
    }
    for (var j = 0; j < li.length; j++) {
      li[j].className = '';
    }
    aud.src = mymusic[a];
    aud.play();
    li[a].className = 'play';
  }
  //下一首
  btnNext.onclick = function () {
    var musicIndex = getPlay();
    if (musicIndex == li.length - 1) {//判斷是否爲最後一首,然後循環播放
      musicIndex = -1;
    }
    aud.src = mymusic[musicIndex + 1];//切換到下一首
    aud.play();
    for (var j = 0; j < li.length; ++j) {
      li[j].className = '';
    }
    li[musicIndex + 1].className = 'play';
  }
  //上一首
  btnPre.onclick = function () {
    var musicIndex = getPlay();
    if (musicIndex == 0) {//判斷是否爲第一首,然後循環播放
      musicIndex = li.length;
    }
    aud.src = mymusic[musicIndex - 1];//切換到上一首
    aud.play();
    for (var j = 0; j < li.length; ++j) {
      li[j].className = '';
    }
    li[musicIndex - 1].className = 'play';
  }
}
目錄

目錄

這裏立一個小小的flag希望自己以後可以變成技術大牛,O(∩_∩)O哈哈~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章