Membuat Pemutar Musik dengan HTML5, CSS dan jQuery

Membuat Pemutar Musik Audio Sederhana dengan HTML5, CSS3 dan jQuery dengan tampilan Material Design.

[feature]
Membuat Pemutar Musik dengan HTML5, CSS dan jQuery - Pada kesempatan kali ini, saya ingin berbagi tutorial cara membuat pemutar musik sederhana dengan menggunakan HTML5, CSS3 dan jQuery.

Saya memanfaatkan Audio dari HTML5 sebagai pemutar musik di sini dengan kustomisasi menggunakan CSS3 dan jQuery agar tampak lebih bagus dan menarik.

Demo

Berikut tampilan akhir pemutar musik:

Persiapan

Ada beberapa file yang saya gunakan secara direct atau dengan kata lain tidak dapat digunakan secara luring (offline). Berikut adalah alat tempur yang harus dipersiapkan:
  1. Editor. Saya menggunakan Sublime 3. Alternatif lainnya seperti Notepad++, PHPStorm, dan lain-lain
  2. Local server. Saya menggunakan Wampserver. Alternatif lainnya seperti Wamp, Xamp, Mamp, dan lain-lain
  3. Library jQuery
  4. Icon Material Design dari Zavoloklom
  5. Font Roboto

Struktur Folder

Struktur folder tutorial
Membuat Pemutar Musik dengan HTML5,
CSS dan jQuery

Buat File Index

Jika alat tempur siap digunakan, langkah selanjutnya adalah membuat file index.html terlebih dahulu. Karena tutorial ini tidak berhubungan dengan back-end, maka tidak perlu menggunakan ekstensi php.

Berikut skripnya: [lock]
[<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Music Player - Anan Bahrul Khoir</title>

  <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/material-design-iconic-font/2.2.0/css/material-design-iconic-font.min.css">

  <link rel="stylesheet" type="text/css" href="assets/css/style.css">
 </head>
 <body>
  <div class="container">
   <div class="music-cover-background"></div>
   <div class="music-cover">
    <div class="cover-box">
     <img src="assets/img/kasih putih.jpg">
    </div>

    <div class="music-cover-dot"></div>
   </div>

   <div class="music-information-background"></div>

   <div class="music-information">
    <div class="music-title">
     <h1>Kasih Putih</h1>
    </div>

    <div class="music-singer">
     <h2>Glenn Fredly</h2>
    </div>

    <div class="music-playlist">
     <span class="current-songs">1</span> / <span class="total-songs">1</span>
    </div>

    <div class="music-time">
     <span class="current-time">00:00</span> / <span class="duration-time">00:00</span>
    </div>
   </div>

   <div class="music-progres"></div>
   <div class="music-progres-current">&nbsp;</div>

   <div class="music-controls">
    <span class="btn-prev"><i class="zmdi zmdi-skip-previous"></i></span>
    <span class="btn-play btn-large"><i class="zmdi zmdi-play"></i></span>
    <span class="btn-next"><i class="zmdi zmdi-skip-next"></i></span>
   </div>
  </div>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script type="text/javascript">
   var Audio = new Audio();
   var musicPath, playButton, prevButton, nextButton;
   var songDuration, songCurrentTime, songDurLong, songCurTimeLong;
   var A;

   musicPath = 'musics/Glenn Fredly - Kasih Putih.mp3';
   Audio.src = musicPath;

   playButton = $('.btn-play');
   prevButton = $('.btn-prev');
   nextButton = $('.btn-next');

   $('.btn-play').on('click', function(){
    if(playButton.html() == '<i class="zmdi zmdi-play"></i>'){
     playButton.html('<i class="zmdi zmdi-pause"></i>');

     if($('.cover-box').hasClass('rotate')){
      $('.cover-box').css('animation-play-state', 'running');
     } else {
      $('.cover-box').addClass('rotate');
     }

     songDuration = readableDuration(Audio.duration);
     $('.duration-time').html(songDuration);

     Audio.play();
    } else {
     playButton.html('<i class="zmdi zmdi-play"></i>');

     $('.cover-box').css('animation-play-state', 'paused');

     Audio.pause();
    }
   });

   Audio.ontimeupdate = function(){
    songCurrentTime = readableDuration(Audio.currentTime);

    songCurTimeLong = Math.floor(Audio.currentTime);
    songDurLong = Math.floor(Audio.duration);

    $('.current-time').html(songCurrentTime);

    var musicProgres = (songCurTimeLong / songDurLong) * 100;

    $('.music-progres-current').css('width', musicProgres + '%');
   };

   function readableDuration(seconds) {
       sec = Math.floor( seconds );    
       min = Math.floor( sec / 60 );
       min = min >= 10 ? min : '0' + min;    
       sec = Math.floor( sec % 60 );
       sec = sec >= 10 ? sec : '0' + sec;    
       return min + ':' + sec;
   }
  </script>
 </body>
</html>]

Buat File Style CSS

Setelah membuat file index, langkah selanjutnya adalah membuat file style css untuk kustomisasi tampilan menjadi lebih bagus dan menarik. Berikut skripnya:
[body {
 padding: 20px;
 margin: 0;
 width: 100%;
}

.container {
 position: relative;
 font-family: 'Roboto', sans-serif;
 font-size: 100%;
 width: 350px;
 height: 600px;
 overflow: hidden;
 margin: 0 auto
}

.music-cover-background {
 width: 100%;
 height: 600px;
 background-image: url('../../assets/img/kasih putih.jpg');
 background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    filter: blur(4px);
   -moz-box-shadow:    inset 0 0 20px #000000;
   -webkit-box-shadow: inset 0 0 20px #000000;
   box-shadow:         inset 0 0 20px #000000;
}

.music-cover {
 position: absolute;
 top: 0;
 left: 0;
 overflow: hidden;
 text-align: center;
 width: 100%;
 padding-top: 25%;
}
.cover-box {
 height: 200px;
 width: 200px;
 border-radius: 50%;
 overflow: hidden;
 margin: 0 auto;
 border: 3px solid white;
 outline: none;
}
.music-cover img {
 width: 200px !important;
 height: 200px !important;
 box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
 outline: none;
}
.rotate {
 outline: none;
    -webkit-animation: rotate 20s linear infinite;
    -moz-animation: rotate 20s linear infinite;
    animation: rotate 20s linear infinite;
}
.music-cover-dot {
 height: 20px;
 width: 20px;
 background-color: white;
 border-radius: 50%;
 position: absolute;
 top: 63%;
 left: 46.4%;
 border: 5px solid grey;
}

.music-information-background {
 position: absolute;
 top: 410px;
 opacity: .5;
 left: 0;
 width: 100%;
 height: 120px;
 background-color: #333;
}
.music-information {
 position: absolute;
 top: 410px;
 left: 0;
 width: 100%;
 height: 120px;
 color: white;
 text-align: center;
 padding: 20px 0;
}
.music-title h1, 
.music-singer h2 {
 padding: 0;
 margin: 0;
 margin-bottom: 5px;
}
.music-title {
 
}
.music-title h1 {
 font-size: 21px;
}
.music-singer {
 margin-bottom: 15px;
}
.music-singer h2 {
 font-weight: normal;
 font-size: 15px;
}
.music-playlist {
 float: left;
 padding-left: 15px;
 display: inline-block;
 font-size: 14px;
}
.music-time {
 float: right;
 padding-right: 15px;
 display: inline-block;
 font-size: 14px;
}

.music-progres {
 background-color: #C2185B;
 height: 10px;
 width: 412px;
 position: absolute;
 z-index: 1;
 top: 520px;
}
.music-progres-current {
 background-color: white;
 height: 9.5px;
 outline: none;
 border: none;
 width: 0%;
 position: absolute;
 top: 520px;
 border-radius: 0 10px 10px 0;
 display: block;
 z-index: 2;
}

.music-controls {
 position: absolute;
 width: 100%;
 height: 70px;
 background-color: #E91E63;
 color: white;
 text-align: center;
 top: 530px;
}

.music-controls span {
 display: inline-block;
 width: 50px;
 height: 50px;
 font-size: 30px;
 padding-top: 20px;
 cursor: pointer;
 vertical-align: middle;
 margin: 0 5px;
 outline: none;
}

span.btn-large {
 font-size: 45px;
 border: 1px solid white;
 border-radius: 50%;
 padding: 0px;
 margin: 0;
}

@keyframes rotate {
  from {
    -webkit-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@media only screen and (min-width: 1024px) {
    .music-controls {
     bottom: 65px;
    }
    .music-progres {
     bottom: 135px;
    }
    .music-progres-current {
     bottom: 63px;
    }
}]
[/lock]Berikut tampilan dari skrip-skrip di atas:
Tampilan pemutar musik yang berhasil dibuat
Sekarang coba klik tombol play tersebut untuk memutar musik! :)

Penutup

Pemutar musik sederhana ini sangat benar-benar sederhana. Fitur yang tersedia juga terbatas hanya play dan pause saja. Namun ditambah dengan animasi gambar sampul yang berputar yang menggunakan CSS3. Sementara pemutar musiknya sendiri menggunakan Audio HTML5.

Fitur yang belum tersedia yaitu playlist, menaikan dan menurunkan volume, berpindah progres posisi lagu dan lain-lain. Insya Allah, jika banyak permintaan akan dilanjutkan di kemudian hari. :)

COMMENTS

BLOGGER: 2
Loading...
Name

2016,2,Action,1,Adventure,1,Agama Kristen,1,Agama Yahudi,1,Ahok,2,Ajax,2,Android,1,Aplikasi,1,Art of War,1,Bahasa,1,Balai Bahasa,1,Beasiswa,4,Belanda,1,Biografi,1,Blindness,1,Blog,3,Brothers,1,Cards View,1,Catatan Hidup,1,Change.org,1,China,1,Comedy,1,Cover,1,CSS,2,Curhat,1,DataGrid,1,Demo Bela Islam I,1,Disaster,1,Disqus,1,Dokumentasi,8,Download,3,Drama,1,Drama Korea,3,Duolingo,1,EasyUI,1,Framework CSS,1,Game,3,GIT,1,Google AdSense,1,Groningen,1,Groningen University,1,HTML,2,Islam,2,jQuery,5,K-Film,3,K-Movie,4,Kata Mutiara,1,Kisah Hidup,1,Konfusius,1,Korean,4,KPOP,1,Kriptografi,1,Kuliah,1,Kungfu,1,Kungfu Style,1,Kustomisasi,1,Kutipan,1,LKS Jawa Barat 2011,1,LPDP,26,LPDP Batch 4 2016,11,LPDP Pinned,2,Material Design,2,Materialize,1,Motivasi,1,Movie,4,Mozilla Firefox,1,Muslim Cyber Army,1,MySQLi,1,NetBeans,1,Niagahoster,1,Object Oriented Programming,1,Opini,7,Paspor,1,Pendidikan,1,Pengalaman,26,Pengayaan Bahasa,4,Perang,1,Perbandingan Agama,3,Petisi Online,1,PHP,6,PowerDesigner,3,QR Code,1,Review,3,Sejarah,1,Simulation,1,Software,1,Source Code,1,Strategy,2,Studi Agama-agama,1,Sun Tzu,1,Suspense-Thriller,1,Themes24x7,1,Tips dan Trik,13,TOEFL,4,TOEFL ITP,4,Train,1,Troubleshooting,2,Tutorial,23,UPI Bandung,1,Video,2,Virus,1,W2UI,1,Walkband,1,Web Design,7,Web Programming,3,Yesus Kristus,2,Zakir Naik,1,Zhang Ziyi,1,Zombie,1,
ltr
item
Anan Bahrul Khoir: Membuat Pemutar Musik dengan HTML5, CSS dan jQuery
Membuat Pemutar Musik dengan HTML5, CSS dan jQuery
Membuat Pemutar Musik Audio Sederhana dengan HTML5, CSS3 dan jQuery dengan tampilan Material Design.
https://4.bp.blogspot.com/-zgno8uoPG3k/WVtVKqdUi4I/AAAAAAAAA9I/XFP92JS8YkY9_BU2-kGLesKr01qfPyHaACLcBGAs/s320/Screenshot_220.png
https://4.bp.blogspot.com/-zgno8uoPG3k/WVtVKqdUi4I/AAAAAAAAA9I/XFP92JS8YkY9_BU2-kGLesKr01qfPyHaACLcBGAs/s72-c/Screenshot_220.png
Anan Bahrul Khoir
http://ananbahrulkhoir.blogspot.com/2017/07/membuat-pemutar-musik-dengan-html5-css.html
http://ananbahrulkhoir.blogspot.com/
http://ananbahrulkhoir.blogspot.com/
http://ananbahrulkhoir.blogspot.com/2017/07/membuat-pemutar-musik-dengan-html5-css.html
true
1987288760696967984
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy