68 Kopakolong, Thống nhất, TP.Kon Tum 600000

14.349171, 108.007778

Chia Sẻ Code Phát Nhạc MP3 Dành Cho Blogger Đẹp, Chuyên Nghiệp

Chào bạn! chúng ta lại gặp nhau trong chuỗi seri chia sẻ miễn phí ✅Code Phát Nhạc MP3 Dành Cho Blogger Đẹp, Chuyên Nghiệp, cho các bạn chuyên sưu tầm.

Chào bạn! chúng ta lại gặp nhau trong chuỗi seri chia sẻ miễn phí Code Phát Nhạc MP3 Dành Cho Blogger Đẹp, Chuyên Nghiệp, cho các bạn chuyên sưu tầm code blogspot phát nhạc mp3, mp4...
Chia Sẻ Code Phát Nhạc MP3 Dành Cho Blogspot
Đoạn mã này giúp bạn tạo trình phát âm thanh JavaScript với danh sách phát. Nó đi kèm với các điều khiển tùy chỉnh bao gồm tiến độ âm lượng, phát / tạm dừng, tiếp theo / trước đó, xáo trộn và nút tự động phát. Tương tự như vậy, người dùng có thể mở rộng và thu gọn trình phát và danh sách phát.


Trình phát hoàn toàn được xây dựng bằng JavaScript mà không có bất kỳ sự phụ thuộc nào.
Tuy nhiên, nó sử dụng Font Awesome CSS cho các biểu tượng. Nếu chúng ta nói về khả năng tùy chỉnh của nó, Sekedus cung cấp cho chúng ta một cách dễ dàng để kiểm soát hành vi tổng thể của người chơi. Bạn có thể chuyển đối tượng cấu hình thông qua thuộc tính dữ liệu HTML5 “data-config”. Mặt khác, giao diện của trình phát âm thanh có thể được tùy chỉnh bằng CSS bổ sung.

Cách tạo Trình phát âm thanh JavaScript với Danh sách phát

1. HTML: 

Trước hết, tạo một phần tử div với tên lớp là “simple-audio-player” và xác định thuộc tính id “simp” và data-config của nó với cài đặt trình phát cơ bản. Trình phát âm thanh HTML5 sẽ được hiển thị thông qua JavaScript bên trong phần tử div này.

Phần thứ hai của trình phát âm thanh là danh sách phát. Vì vậy, hãy tạo một phần tử div với tên lớp là “simp-playlist” và đặt một danh sách các tệp bài hát của bạn không có thứ tự. Cấu trúc HTML hoàn chỉnh cho trình phát âm thanh có danh sách phát như sau:
<div class="simple-audio-player" id="simp" data-config='{"shide_top":false,"shide_btm":false,"auto_load":false}'>
  <div class="simp-playlist">
    <ul>
      <li><span class="simp-source" data-src="http://www.archive.org/download/CanonInD_261/CanoninD.mp3">Canon in D</span><span class="simp-desc">Johann Pachelbel</span></li>
      <li><span class="simp-source" data-src="https://www.script-tutorials.com/demos/363/data/05.mp3">Artist 5</span></li>
      <li><span class="simp-source" data-src="https://www.dropbox.com/s/6pays95q2a9jrsf/2020.01.02.mp3?dl=1" data-cover="https://i.postimg.cc/sDBycWS8/NMS-2019.jpg">Nightmare Side</span><span class="simp-desc">Set Stori</span></li>
      <li class="simp-active"><span class="simp-source" data-src="https://www.dropbox.com/s/k011ag91uktonbv/Angklung%20Preman%20Pensiun.mp3?dl=1">Angklung Preman Pensiun</span></li>
      <li><span class="simp-source" data-src="https://www.dropbox.com/s/prgte33m86n9ce7/Canon%20Rock%20%28JerryC%29%20-%20funtwo.mp3?dl=1">Canon Rock (JerryC)</span><span class="simp-desc">by Funtwo</span></li>
      <li><span class="simp-source" data-src="http://listento.ardanradio.com:1059/;">105.9 FM Ardan Radio</span><span class="simp-desc">Streaming Radio</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/78_jailhouse-rock_elvis-presley-jerry-leiber-mike-stoller_gbia0080595b/Jailhouse%20Rock%20-%20Elvis%20Presley%20-%20Jerry%20Leiber-restored.mp3">Jailhouse Rock</span><span class="simp-desc">Elvis Presley</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/J._Period_and_Michael_Jackson_-_Man_Or_The_Music-2010/17%20Smooth%20Criminal.mp3">Smooth Criminal</span><span class="simp-desc">Michael Jackson</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/OldPop_256/VillagePeople-Y.m.c.a.mp3">Y.M.C.A</span><span class="simp-desc">Village People</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/chuckberryjohnnyb.goode/Chuck%20Berry%20-%20Johnny%20B.%20Goode.mp3">Johnny B. Goode</span><span class="simp-desc">Chuck Berry</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/AnimalsTheHouseOfTheRisingSun_201811/Animals%20-%20The%20House%20Of%20The%20Rising%20Sun.mp3">House of the Rising Sun</span><span class="simp-desc">The Animals</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/DontStopMeNow_255/Queen-DontStopMeNow.mp3">Don't Stop Me Now</span><span class="simp-desc">Queen</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/NeverGonnaGiveYouUpOriginal/Never%20Gonna%20Give%20You%20Up%20Original.mp3">Never Gonna Give You Up</span><span class="simp-desc">Rick Astley</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/gunsnrosessweetchildomine_202003/Guns%20N%27%20Roses%20-%20Sweet%20Child%20%27O%20Mine.mp3">Sweet Child O' Mine</span><span class="simp-desc">Guns N' Roses</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/01.TheFinalCountdown/01.%20The%20Final%20Countdown.mp3">The Final Countdown</span><span class="simp-desc">Europe</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/1MyHeartWillGoOnLoveThemeFromTitanic/1%20-%20My%20Heart%20Will%20Go%20On%20%28Love%20Theme%20from%20_Titanic_%29.mp3">My Heart Will Go On</span><span class="simp-desc">Céline Dion</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/tntvillage_323140/John%20Lennon%20-%20Imagine/01%20Imagine.mp3">Imagine</span><span class="simp-desc">John Lennon</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/TheBeatles1970HeyJudeAppleRecords6e062.0434807HeyJude/The%20Beatles%20-%201970%20-%20Hey%20Jude%20%28Apple%20Records%3B%20%236e%20062.04348%29_07%20-%20Hey%20Jude.mp3">Hey Jude</span><span class="simp-desc">The Beatles</span></li>
      <li><span class="simp-source" data-src="https://archive.org/download/TakeMeHomeCountryRoad/JohnDenver-TakeMeHomeCountryRoad.mp3">Take Me Home, Country Roads</span><span class="simp-desc">John Denver</span></li>
    </ul>
  </div>
</div>    
Trong HTML ở trên, bạn chỉ cần cập nhật “data-src” và thuộc tính trong mỗi phần tử li.

2. CSS:

Sau khi tạo HTML, bây giờ là lúc tạo kiểu cho trình phát âm thanh. Vì vậy, hãy sao chép CSS sau đây và đưa nó vào dự án của bạn. Bạn có thể thay đổi các giá trị CSS nếu muốn tùy chỉnh giao diện của trình phát âm thanh.
@import url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');

*,*:before,*:after{outline:0;-webkit-box-sizing:border-box;box-sizing:border-box;}
input,button{outline:none;}
a,a:hover,a:visited{color:#ddd;text-decoration:none;}
.flex{display:-webkit-flex;display:flex;}
.flex-wrap{display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;}
.flex-align{-webkit-align-items:center;align-items:center;}
.w-full{width:100%;}

/* HTML5 Audio Player with Playlist, source: https://www.codehim.com/vanilla-javascript/javascript-audio-player-with-playlist/ */
#simp button,#simp input,#simp img{border:0;}
#simp{max-width:600px;font-size:14px;font-family:"Segoe UI", Tahoma, sans-serif;text-align:initial;line-height:initial;background:#17212b;color:#ddd;margin:0 auto;border-radius:6px;overflow:hidden;}
#simp .simp-album{padding:20px 25px 5px;}
#simp .simp-album .simp-cover{margin-right:20px;}
#simp .simp-album .simp-cover img{max-width:80px;width:100%;margin:0;padding:0;display:block;}
#simp .simp-album .simp-title{font-size:120%;font-weight:bold;}
#simp .simp-album .simp-artist{font-size:90%;color:#6c7883;}
#simp .simp-controls{padding:15px;}
#simp .simp-controls button{font-size:130%;width:32px;height:32px;background:none;color:#ddd;padding:7px;cursor:pointer;border:0;border-radius:3px;}
#simp .simp-controls button[disabled]{color:#636469;cursor:initial;}
#simp .simp-controls button:not([disabled]):hover{background:#4082bc;color:#fff;}
#simp .simp-controls .simp-prev,#simp .simp-controls .simp-next{font-size:100%;}
#simp .simp-controls .simp-tracker,#simp .simp-controls .simp-volume{flex:1;margin-left:10px;position:relative;}
#simp .simp-controls .simp-buffer {position:absolute;top:50%;right:0;left:0;height:5px;margin-top:-2.5px;border-radius:100px;}
#simp .simp-controls .simp-loading .simp-buffer {-webkit-animation:audio-progress 1s linear infinite;animation:audio-progress 1s linear infinite;background-image: linear-gradient(-45deg, #000 25%, transparent 25%, transparent 50%, #000 50%, #000 75%, transparent 75%, transparent);background-repeat:repeat-x;background-size:25px 25px;color:transparent;}
#simp .simp-controls .simp-time,#simp .simp-controls .simp-others{margin-left:10px;}
#simp .simp-controls .simp-volume{max-width:110px;}
#simp .simp-controls .simp-volume .simp-mute{margin-right:5px;}
#simp .simp-controls .simp-others .simp-active{background:#242f3d;}
#simp .simp-controls .simp-others .simp-shide button{font-size:100%;padding:0;width:24px;height:14px;display:block;}
#simp .simp-controls input[type=range]{-webkit-appearance:none;background:transparent;height:19px;margin:0;width:100%;display:block;position:relative;z-index:2;}
#simp .simp-controls input[type=range]::-webkit-slider-runnable-track{background:rgba(183,197,205,.66);height:5px;border-radius:2.5px;transition:box-shadow .3s ease;position:relative;}
#simp .simp-controls input[type=range]::-moz-range-track{background:rgba(183,197,205,.66);height:5px;border-radius:2.5px;transition:box-shadow .3s ease;position:relative;}
#simp .simp-controls .simp-load .simp-progress::-webkit-slider-runnable-track{background:#2f3841;}
#simp .simp-controls .simp-load .simp-progress::-moz-range-track{background:#2f3841;}
#simp .simp-controls .simp-loading .simp-progress::-webkit-slider-runnable-track{background:rgba(255,255,255,.25);}
#simp .simp-controls .simp-loading .simp-progress::-moz-range-track{background:rgba(255,255,255,.25);}
#simp .simp-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;height:13px;width:13px;margin-top:-4px;cursor:pointer;border-radius:50%;box-shadow:0 1px 1px rgba(0,0,0,.15), 0 0 0 1px rgba(47,52,61,.2);}
#simp .simp-controls input[type=range]::-moz-range-thumb{-webkit-appearance:none;background:#fff;height:13px;width:13px;cursor:pointer;border-radius:50%;box-shadow:0 1px 1px rgba(0,0,0,.15), 0 0 0 1px rgba(47,52,61,.2);}
#simp .simp-footer{padding:10px 10px 12px;font-size:90%;text-align:center;opacity:.7;}
#simp .simp-display{overflow:hidden;max-height:650px;transition:max-height .5s ease-in-out;}
#simp .simp-hide{max-height:0;}
/* playlist */
#simp ul{margin:5px 0 0;padding:0;list-style:none;max-height:245px;}
#simp ul li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;margin:0;padding:8px 20px;cursor:pointer;}
#simp ul li:last-child{padding-bottom:13px;}
#simp ul li:nth-child(odd){background:#0e1621;}
#simp ul li:hover{background:#242f3d;}
#simp ul li.simp-active{background:#4082bc;color:#fff;}
#simp ul li .simp-desc{font-size:90%;opacity:.5;margin-left:5px;}
/* playlist scrollbar */
#simp ul{overflow-y:auto;overflow-x:hidden;scrollbar-color:#73797f #2f3841;}
#simp ul::-webkit-scrollbar-track{background-color:#2f3841;}
#simp ul::-webkit-scrollbar{width:6px;background-color:#2f3841;}
#simp ul::-webkit-scrollbar-thumb{background-color:#73797f;}
/* progress animation */
@-webkit-keyframes audio-progress{to{background-position:25px 0;}}
@keyframes audio-progress{to{background-position:25px 0;}}
/* mobile */
@media screen and (max-width:480px) {
#simp .simp-controls .simp-volume,#simp .simp-controls .simp-others{display:none;}
#simp .simp-controls .simp-time{margin-right:10px;}
}
@media screen and (max-width:370px) {
#simp .simp-time .simp-slash,#simp .simp-time .end-time{display:none;}
}

3. JAVASCRIPT:

Trong bước cuối cùng, bạn cần đưa mã JavaScript vào dự án của mình để vận hành trình phát âm thanh. Vì vậy, hãy sao chép mã JavaScript của trình phát âm thanh sau và dán vào giữa thẻ <script> và đặt nó trước khi đóng thẻ body. Bạn cũng có thể tạo một tệp JS riêng biệt và đưa nó vào dự án của mình.
    
/*
Example: https://www.codehim.com/demo/javascript-audio-player-with-playlist/
*/
// Multiple events to a listener
function addEventListener_multi(element, eventNames, handler) {
  var events = eventNames.split(' ');
  events.forEach(e => element.addEventListener(e, handler, false));
}

// Random numbers in a specific range
function getRandom(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

// Position element inside element
function getRelativePos(elm) {
  var pPos = elm.parentNode.getBoundingClientRect(); // parent pos
  var cPos = elm.getBoundingClientRect(); // target pos
  var pos = {};

  pos.top    = cPos.top    - pPos.top + elm.parentNode.scrollTop,
  pos.right  = cPos.right  - pPos.right,
  pos.bottom = cPos.bottom - pPos.bottom,
  pos.left   = cPos.left   - pPos.left;

  return pos;
}

function formatTime(val) {
  var h = 0, m = 0, s;
  val = parseInt(val, 10);
  if (val > 60 * 60) {
   h = parseInt(val / (60 * 60), 10);
   val -= h * 60 * 60;
  }
  if (val > 60) {
   m = parseInt(val / 60, 10);
   val -= m * 60;
  }
  s = val;
  val = (h > 0)? h + ':' : '';
  val += (m > 0)? ((m < 10 && h > 0)? '0' : '') + m + ':' : '0:';
  val += ((s < 10)? '0' : '') + s;
  return val;
}

function simp_initTime() {
  simp_controls.querySelector('.start-time').innerHTML = formatTime(simp_audio.currentTime); //calculate current value time
  if (!simp_isStream) {
    simp_controls.querySelector('.end-time').innerHTML = formatTime(simp_audio.duration); //calculate total value time
    simp_progress.value = simp_audio.currentTime / simp_audio.duration * 100; //progress bar
  }
  
  // ended of the audio
  if (simp_audio.currentTime == simp_audio.duration) {
    simp_controls.querySelector('.simp-plause').classList.remove('fa-pause');
    simp_controls.querySelector('.simp-plause').classList.add('fa-play');
    simp_audio.removeEventListener('timeupdate', simp_initTime);
    
    if (simp_isNext) { //auto load next audio
      var elem;
      simp_a_index++;
      if (simp_a_index == simp_a_url.length) { //repeat all audio
        simp_a_index = 0;
        elem = simp_a_url[0];
      } else {
        elem = simp_a_url[simp_a_index];  
      }
      simp_changeAudio(elem);
      simp_setAlbum(simp_a_index);
    } else {
      simp_isPlaying = false;
    }
  }
}

function simp_initAudio() {
  // if readyState more than 2, audio file has loaded
simp_isLoaded = simp_audio.readyState == 4 ? true : false;
  simp_isStream = simp_audio.duration == 'Infinity' ? true : false;
  simp_controls.querySelector('.simp-plause').disabled = false;
  simp_progress.disabled = simp_isStream ? true : false;
  if (!simp_isStream) {
    simp_progress.parentNode.classList.remove('simp-load','simp-loading');
    simp_controls.querySelector('.end-time').innerHTML = formatTime(simp_audio.duration);
  }
  simp_audio.addEventListener('timeupdate', simp_initTime); //tracking load progress
  if (simp_isLoaded && simp_isPlaying) simp_audio.play();
  
  // progress bar click event
  addEventListener_multi(simp_progress, 'touchstart mousedown', function(e) {
    if (simp_isStream) {
      e.stopPropagation();
      return false;
    }
    if (simp_audio.readyState == 4) {
      simp_audio.removeEventListener('timeupdate', simp_initTime);
      simp_audio.pause();
    }
  });
  
  addEventListener_multi(simp_progress, 'touchend mouseup', function(e) {
    if (simp_isStream) {
      e.stopPropagation();
      return false;
    }
    if (simp_audio.readyState == 4) {
      simp_audio.currentTime = simp_progress.value * simp_audio.duration / 100;
      simp_audio.addEventListener('timeupdate', simp_initTime);
      if (simp_isPlaying) simp_audio.play();
    }
  });
}

function simp_loadAudio(elem) {
  simp_progress.parentNode.classList.add('simp-loading');
  simp_controls.querySelector('.simp-plause').disabled = true;
  simp_audio.querySelector('source').src = elem.dataset.src;
  simp_audio.load();
  
  simp_audio.volume = parseFloat(simp_v_num / 100); //based on valume input value
  simp_audio.addEventListener('canplaythrough', simp_initAudio); //play audio without stop for buffering
  
  // if audio fails to load, only IE/Edge 9.0 or above
  simp_audio.addEventListener('error', function() {
    alert('Please reload the page.');
  });
}

function simp_setAlbum(index) {
  simp_cover.innerHTML = simp_a_url[index].dataset.cover ? '<div style="background:url(' + simp_a_url[index].dataset.cover + ') no-repeat;background-size:cover;width:80px;height:80px;"></div>' : '<i class="fa fa-music fa-5x"></i>';
  simp_title.innerHTML = simp_source[index].querySelector('.simp-source').innerHTML;
  simp_artist.innerHTML = simp_source[index].querySelector('.simp-desc') ? simp_source[index].querySelector('.simp-desc').innerHTML : '';
}

function simp_changeAudio(elem) {
simp_isLoaded = false;
  simp_controls.querySelector('.simp-prev').disabled = simp_a_index == 0 ? true : false;
  simp_controls.querySelector('.simp-plause').disabled = simp_auto_load ? true : false;
  simp_controls.querySelector('.simp-next').disabled = simp_a_index == simp_a_url.length-1 ? true : false;
  simp_progress.parentNode.classList.add('simp-load');
  simp_progress.disabled = true;
  simp_progress.value = 0;
  simp_controls.querySelector('.start-time').innerHTML = '00:00';
  simp_controls.querySelector('.end-time').innerHTML = '00:00';
  elem = simp_isRandom && simp_isNext ? simp_a_url[getRandom(0, simp_a_url.length-1)] : elem;
  
  // playlist, audio is running
  for (var i = 0; i < simp_a_url.length; i++) {
    simp_a_url[i].parentNode.classList.remove('simp-active');
    if (simp_a_url[i] == elem) {
      simp_a_index = i;
      simp_a_url[i].parentNode.classList.add('simp-active');
    }
  }
  
  // scrolling to element inside element
  var simp_active = getRelativePos(simp_source[simp_a_index]);
  simp_source[simp_a_index].parentNode.scrollTop = simp_active.top;
  
  if (simp_auto_load || simp_isPlaying) simp_loadAudio(elem);
  
  if (simp_isPlaying) {
    simp_controls.querySelector('.simp-plause').classList.remove('fa-play');
    simp_controls.querySelector('.simp-plause').classList.add('fa-pause');
  }
}

function simp_startScript() {
  ap_simp = document.querySelector('#simp');
  simp_audio = ap_simp.querySelector('#audio');
  simp_album = ap_simp.querySelector('.simp-album');
  simp_cover = simp_album.querySelector('.simp-cover');
  simp_title = simp_album.querySelector('.simp-title');
  simp_artist = simp_album.querySelector('.simp-artist');
  simp_controls = ap_simp.querySelector('.simp-controls');
  simp_progress = simp_controls.querySelector('.simp-progress');
  simp_volume = simp_controls.querySelector('.simp-volume');
  simp_v_slider = simp_volume.querySelector('.simp-v-slider');
  simp_v_num = simp_v_slider.value; //default volume
  simp_others = simp_controls.querySelector('.simp-others');
  simp_auto_load = simp_config.auto_load; //auto load audio file
  
  if (simp_config.shide_top) simp_album.parentNode.classList.toggle('simp-hide');
  if (simp_config.shide_btm) {
    simp_playlist.classList.add('simp-display');
    simp_playlist.classList.toggle('simp-hide');
  }
  
  if (simp_a_url.length <= 1) {
    simp_controls.querySelector('.simp-prev').style.display = 'none';
    simp_controls.querySelector('.simp-next').style.display = 'none';
    simp_others.querySelector('.simp-plext').style.display = 'none';
    simp_others.querySelector('.simp-random').style.display = 'none';
  }

  // Playlist listeners
  simp_source.forEach(function(item, index) {
    if (item.classList.contains('simp-active')) simp_a_index = index; //playlist contains '.simp-active'
    item.addEventListener('click', function() {
      simp_audio.removeEventListener('timeupdate', simp_initTime);
      simp_a_index = index;
      simp_changeAudio(this.querySelector('.simp-source'));
      simp_setAlbum(simp_a_index);
    });
  });
  
  // FIRST AUDIO LOAD =======
  simp_changeAudio(simp_a_url[simp_a_index]);
  simp_setAlbum(simp_a_index);
  // FIRST AUDIO LOAD =======
  
  // Controls listeners
  simp_controls.querySelector('.simp-plauseward').addEventListener('click', function(e) {
    var eles = e.target.classList;
    if (eles.contains('simp-plause')) {
      if (simp_audio.paused) {
        if (!simp_isLoaded) simp_loadAudio(simp_a_url[simp_a_index]);
        simp_audio.play();
        simp_isPlaying = true;
        eles.remove('fa-play');
        eles.add('fa-pause');
      } else {
        simp_audio.pause();
        simp_isPlaying = false;
        eles.remove('fa-pause');
        eles.add('fa-play');
      }
    } else {
      if (eles.contains('simp-prev') && simp_a_index != 0) {
        simp_a_index = simp_a_index-1;
        e.target.disabled = simp_a_index == 0 ? true : false;
      } else if (eles.contains('simp-next') && simp_a_index != simp_a_url.length-1) {
        simp_a_index = simp_a_index+1;
        e.target.disabled = simp_a_index == simp_a_url.length-1 ? true : false;
      }
      simp_audio.removeEventListener('timeupdate', simp_initTime);
      simp_changeAudio(simp_a_url[simp_a_index]);
      simp_setAlbum(simp_a_index);
    }
  });
  
  // Audio volume
  simp_volume.addEventListener('click', function(e) {
    var eles = e.target.classList;
    if (eles.contains('simp-mute')) {
      if (eles.contains('fa-volume-up')) {
        eles.remove('fa-volume-up');
        eles.add('fa-volume-off');
        simp_v_slider.value = 0;
      } else {
        eles.remove('fa-volume-off');
        eles.add('fa-volume-up');
        simp_v_slider.value = simp_v_num;
      }
    } else {
      simp_v_num = simp_v_slider.value;
      if (simp_v_num != 0) {
        simp_controls.querySelector('.simp-mute').classList.remove('fa-volume-off');
        simp_controls.querySelector('.simp-mute').classList.add('fa-volume-up');
      }
    }
    simp_audio.volume = parseFloat(simp_v_slider.value / 100);
  });
  
  // Others
  simp_others.addEventListener('click', function(e) {
    var eles = e.target.classList;
    if (eles.contains('simp-plext')) {
      simp_isNext = simp_isNext && !simp_isRandom ? false : true;
      if (!simp_isRandom) simp_isRanext = simp_isRanext ? false : true;
      eles.contains('simp-active') && !simp_isRandom ? eles.remove('simp-active') : eles.add('simp-active');
    } else if (eles.contains('simp-random')) {
      simp_isRandom = simp_isRandom ? false : true;
      if (simp_isNext && !simp_isRanext) {
        simp_isNext = false;
        simp_others.querySelector('.simp-plext').classList.remove('simp-active');
      } else {
        simp_isNext = true;
        simp_others.querySelector('.simp-plext').classList.add('simp-active');
      }
      eles.contains('simp-active') ? eles.remove('simp-active') : eles.add('simp-active');
    } else if (eles.contains('simp-shide-top')) {
      simp_album.parentNode.classList.toggle('simp-hide');
    } else if (eles.contains('simp-shide-bottom')) {
      simp_playlist.classList.add('simp-display');
      simp_playlist.classList.toggle('simp-hide');
    }
  });
}

// Start simple player
if (document.querySelector('#simp')) {
  var simp_auto_load, simp_audio, simp_album, simp_cover, simp_title, simp_artist, simp_controls, simp_progress, simp_volume, simp_v_slider, simp_v_num, simp_others;
  var ap_simp = document.querySelector('#simp');
  var simp_playlist = ap_simp.querySelector('.simp-playlist');
  var simp_source = simp_playlist.querySelectorAll('li');
  var simp_a_url = simp_playlist.querySelectorAll('[data-src]');
  var simp_a_index = 0;
  var simp_isPlaying = false;
  var simp_isNext = false; //auto play
  var simp_isRandom = false; //play random
  var simp_isRanext = false; //check if before random starts, simp_isNext value is true
  var simp_isStream = false; //radio streaming
  var simp_isLoaded = false; //audio file has loaded
  var simp_config = ap_simp.dataset.config ? JSON.parse(ap_simp.dataset.config) : {
    shide_top: false, //show/hide album
    shide_btm: false, //show/hide playlist
    auto_load: false //auto load audio file
  };
  
  var simp_elem = '';
  simp_elem += '<audio id="audio" preload><source src="" type="audio/mpeg"></audio>';
  simp_elem += '<div class="simp-display"><div class="simp-album w-full flex-wrap"><div class="simp-cover"><i class="fa fa-music fa-5x"></i></div><div class="simp-info"><div class="simp-title">Title</div><div class="simp-artist">Artist</div></div></div></div>';
  simp_elem += '<div class="simp-controls flex-wrap flex-align">';
  simp_elem += '<div class="simp-plauseward flex flex-align"><button type="button" class="simp-prev fa fa-backward" disabled></button><button type="button" class="simp-plause fa fa-play" disabled></button><button type="button" class="simp-next fa fa-forward" disabled></button></div>';
  simp_elem += '<div class="simp-tracker simp-load"><input class="simp-progress" type="range" min="0" max="100" value="0" disabled/><div class="simp-buffer"></div></div>';
  simp_elem += '<div class="simp-time flex flex-align"><span class="start-time">00:00</span><span class="simp-slash"> / </span><span class="end-time">00:00</span></div>';
  simp_elem += '<div class="simp-volume flex flex-align"><button type="button" class="simp-mute fa fa-volume-up"></button><input class="simp-v-slider" type="range" min="0" max="100" value="100"/></div>';
  simp_elem += '<div class="simp-others flex flex-align"><button type="button" class="simp-plext fa fa-play-circle" title="Auto Play"></button><button type="button" class="simp-random fa fa-random" title="Random"></button><div class="simp-shide"><button type="button" class="simp-shide-top fa fa-caret-up" title="Show/Hide Album"></button><button type="button" class="simp-shide-bottom fa fa-caret-down" title="Show/Hide Playlist"></button></div></div>';
  simp_elem += '</div>'; //simp-controls
  
  var simp_player = document.createElement('div');
  simp_player.classList.add('simp-player');
  simp_player.innerHTML = simp_elem;
  ap_simp.insertBefore(simp_player, simp_playlist);
  simp_startScript();
}
Đó là tất cả! hy vọng rằng bạn đã tích hợp thành công trình phát âm thanh này vào dự án trang web của mình. Nếu bạn có bất kỳ câu hỏi hoặc đối mặt với bất kỳ vấn đề, đừng ngại bình luận bên dưới.

Các tính năng và cải tiến SEO tốt nhất trong các template của chúng tôi?

London is the capital city of England.

Full Schema/SEO blog

Hầu hết các mẫu blogger trên internet không hợp lệ với định dạng SEO và Schema trên thực tế, chúng được thiết kế theo cách đó ở đâu đó mà nó hỗ trợ schema.org.

nhưng các trang đăng ban đầu, trang tĩnh, trang lưu trữ và nhiều công cụ quan trọng khác có sẵn trong các mẫu blogger không được cài đặt đúng cách.

Ở đây trong Mẫu Blogger Miễn phí của chúng tôi, chúng tôi đã sử dụng Chức năng thẻ Meta Keywords trong các mẫu Blogger của chúng tôi, chức năng này được Tạo tự động với tiêu đề Bài đăng và Trang chủ cùng với blog của bạn.

Ngoài ra, chúng tôi đã sử dụng Thẻ ALT được tạo tự động vào Hình ảnh với sự trợ giúp của Hàm jQuery để các công cụ serach hiểu đúng trang web Blogger của bạn.

Tất cả các Mẫu Blogger đều tương thích với adsense và nền tảng quảng cáo khác

Nhưng chúng tôi thiết kế các mẫu thủ công để cung cấp mọi công cụ phân loại tốt.

Định dạng vi mô/Ajax nâng cao hợp lệ

Một công cụ tuyệt vời khác là Tập lệnh Ajax được sử dụng trong Mẫu Piki Blogger vì chúng tôi đã thiết kế Chủ đề Blogger

nơi nó đáp ứng yêu cầu của người dùng rằng khung mẫu blogger phải phù hợp với tất cả các loại lỗi trong blogger

Do đó, trên internet có sẵn nhiều mẫu blogger khác nhau nhưng vấn đề nghiêm trọng là ở đâu đó tập lệnh của họ trong các mẫu blogger bị lỗi vì những lý do sau đây: -

Nếu người dùng nhập thẻ alt trong hình ảnh bài đăng sau khi xuất bản bài đăng trên blogger thì hình ảnh sẽ bị lỗi trong các bài đăng nổi bật.

Nếu người dùng sử dụng ngôn ngữ tùy chỉnh trong bài đăng trên Blogger như tiếng Hindi thuần túy, tiếng Urdu, tiếng Tây Ban Nha, v.v. Giống như các ngôn ngữ thì bài đăng nổi bật của Mẫu Blogger hoàn toàn không thể hoạt động

Nhưng chúng tôi sử dụng công cụ Ajax Mặc định mới nhất cho nguồn cấp dữ liệu/bài đăng của blogger để các mẫu Blogger của chúng tôi có thể xử lý mọi tình huống và vấn đề.

Có nhiều công cụ khác có sẵn trong các mẫu Blogger của chúng tôi như công cụ Định dạng vi mô giúp công cụ tìm kiếm hiểu đúng trang web của bạn như Thẻ tiêu đề để lập chỉ mục

Công cụ này thực sự hỗ trợ class='vcard' , class='fn' nơi nó cung cấp định dạng mở, cỡ chữ và nhận dạng từ để công cụ tìm kiếm có thể hiểu Trang web của bạn.

Trong Mẫu Blogger Cao cấp, chủ đề của chúng tôi, tất cả các công cụ hợp lệ với Định dạng vi mô như trang bài đăng, phần tác giả, ngày và giờ, tiêu đề, mọi thứ đều được phân loại thành vi định dạng trong Mẫu Blogger của chúng tôi.

Thẻ thân thiện với SEO

Chúng tôi đang cung cấp các thẻ meta SEO opg.me đồ thị mở mới nhất để tăng xếp hạng trang web của bạn và tăng cường các bài viết của bạn trong tất cả các công cụ tìm kiếm trong Mẫu Blogger của chúng tôi.

Ngoài ra, chúng tôi sử dụng một số công cụ phổ biến và tốt nhất trong các mẫu blogger của chúng tôi để tăng cường trang web của bạn và lập chỉ mục trên tất cả các công cụ tìm kiếm

Mọi biểu tượng favicon xã hội, từ khóa, trình duyệt có sẵn ở phần trên cùng của mẫu blogger, tự động không cần chỉnh sửa cũng có sẵn tóm tắt và đoạn trích

Tính năng làm nổi bật chính?

Chà, có rất nhiều Featrues có sẵn, một số thứ sau đây có ở đây: -

1:) Hỗ trợ tất cả các định dạng hình ảnh như png, jpg, jpeg, wbep trong các bài viết nổi bật.

2:) Lazy Load trong hiệu ứng cuộn để giảm kích thước trang và thời gian tải.

3:) Hàm Ajax rất mạnh mẽ để tải tất cả các bài đăng {thậm chí đôi khi có những bài đăng rác không được lập chỉ mục nhưng trong Mẫu Blogger Miễn phí của chúng tôi Tải đúng cách}.

4:) Sau khi Xuất bản Bài đăng, bạn có thể Thay đổi kích thước hình ảnh bằng cách nhấn vào Trung bình, lớn, nhỏ đó (trong khi các hình ảnh mẫu khác nhau bị lỗi tại các bài đăng nổi bật).

5:) Nhãn trống trong bài đăng không tạo ra bất kỳ sự cố nào trong Bài đăng nổi bật {jQuery của chúng tôi có thể xử lý các bài đăng như vậy cho nhãn Hoàn thành tự động} .

6:) Ngôn ngữ thuần túy có thể được sử dụng trong các bài đăng nổi bật như tiếng Hindi, tiếng Tây Ban Nha, v.v.

7:) Mẫu Blogger miễn phí và Mẫu Blogger cao cấp Người dùng có thể nhận được chức năng lưu trữ bộ đệm trong thời gian thực vì chúng tôi sử dụng bộ đệm để cập nhật tự động và tải nhanh trong các mẫu blogger của chúng tôi.

8:) Các tính năng tùy chỉnh khác được cung cấp tại Trình thiết kế chủ đề bố cục.

Tải mẫu Blogger nhanh hơn

Tất cả các mẫu Blogger được thiết kế bằng biểu định kiểu CSS mới nhất của jQuery, giúp bạn tải nhanh hơn để mở trang web của mình.

Mỗi mẫu Blogger đều có Tốc độ tối thiểu 90+ theo các công cụ Pingdom, kiểm tra tốc độ ngọn hải đăng của Google, ma trận GT

{đã kiểm tra và chụp ảnh màn hình trực tiếp được đính kèm vào bài đăng} Một số người dùng gặp sự cố tốc độ chậm

Có một số yếu tố chính mà bạn cần phải tối ưu hóa

1:) xóa biểu định kiểu CSS bổ sung (phông chữ)

2:) Chúng tôi xóa các mẫu biểu mẫu plugin jquery facebook {nhưng đã thêm chức năng bình luận facebook} bạn có thể thêm sau nếu bạn cần hộp bình luận facebook

3:) Vui lòng luôn cố gắng nén tất cả hình ảnh của bạn dưới 20kb

4:) theo mặc định, Google AdSense hỗ trợ tối đa 4 đến 5 quảng cáo trên một trang {cố gắng duy trì điều này}

5:) Tối ưu hóa logo tiêu đề của bạn dưới 5 KB {tạo định dạng PNG}

6:) hiển thị tối thiểu 6 - 8 bài đăng trong phần bài đăng chính gần đây {vì đã có phân trang tiếp theo}

7:) chỉ thêm các tiện ích hữu ích Thanh bên {loại bỏ không sử dụng}

8:) sử dụng ngắt đoạn trong tất cả các bài đăng của bạn càng tốt { }

9:) cố gắng tránh sử dụng logo hình ảnh trong trang chủ {có sẵn biểu định kiểu cloudfalre hãy sử dụng chúng}

10:) Thu nhỏ các bài đăng phổ biến của bạn trong thanh bên

bằng cách áp dụng nén và tối ưu hóa này, tốc độ của bạn có thể tăng lên hơn 90 ngay cả khi bạn gặp phải bất kỳ sự cố nào, vui lòng liên hệ với chúng tôi

Blogger

Paris is the capital of France.

Blogger

Paris is the capital of France.

Blogger

Paris is the capital of France.

SEO Web

Tokyo is the capital of Japan.

Blogger

Paris is the capital of France.

Blogger

Paris is the capital of France.