專輯藝人:艾德華·克里斯多福·希蘭 (紅髮艾德 / 艾德·希蘭)
活躍時期:2004年–現在
唱片公司:Asylum, Atlantic, Elektra, Gingerbread Man
音樂類型:流行, 民謠流行 
艾德華·克里斯多福·希蘭 (紅髮艾德 / 艾德·希蘭),MBE(英語:Edward Christopher Sheeran,1991年2月17日—),是英國創作歌手、音樂製作人及演員。艾德出生於西約克郡哈利法克斯,並在薩福克郡弗瑞林姆長大。18歲時,他曾於吉爾福德當代音樂學院就讀大學。2011年年初,艾德獨立發行了迷你專輯《No. 5 Collaborations Project》。同年,他與庇護所 (Asylum Records) 唱片簽約,Sheeran 的首張專輯「+」(「Plus」)於 2011 年 9 月發行,並榮登英國專輯榜榜首。 其中包含他的第一首熱門單曲“The A Team”。 2012年,希蘭榮獲全英音樂獎最佳英國男歌手和英國突破藝人獎。 希蘭的第二張錄音室專輯《×》(「Multiply」)於 2014 年 6 月發行後登上全球排行榜榜首。這張專輯被評為 2015 年全球第二暢銷專輯。同年,《×》榮獲2015 年全英音樂獎,並獲得英國歌曲作者、作曲家和作家學院頒發的艾弗·諾韋洛 (Ivor Novello Award) 年度歌曲作者獎。× 的單曲《Thinking Out Loud》為他贏得了 2016 年葛萊美年度歌曲獎和最佳流行獨唱獎。
Sheeran 的第三張專輯 ÷(「Divide」)於 2017 年 3 月發行,是 2017 年全球最暢銷的專輯。專輯中的前兩首單曲「Shape of You」和「Castle on the Hill」打破了首次亮相就佔據排行榜前兩名,在多個國家創下了紀錄。 他也成為第一位在同一周內有兩首歌曲首次進入美國前十名的藝人。截至 2017 年 3 月,Sheeran 已在英國單曲榜上積累了 10 首來自 ÷ 的單曲排行榜前 10 名,打破了一張專輯中進入英國前 10 名單曲最多的記錄。他的第四首單曲《Perfect》在美國、澳洲和英國排名第一,並成為 2017 年聖誕節銷量第一的單曲。他是 2017 年全球最暢銷的藝術家,被評為全球唱片藝術家。他的第四張專輯、首張合作專輯《No.6 Collaborations Project》於2019 年發行,首次在大多數主要市場排名第一,並催生了三首英國排名第一的單曲:《I Don' t Care》、《Beautiful People》和《Take Me Back to London》。他的第五張錄音室專輯= (“Equals”) 在 2021 年在大多數主要市場上名列前茅。他的第六張專輯- (“Subtract”) 於2023 年5 月5 日發行,一張以原聲為主的專輯,主打單曲《Eyes Closed》而《Boat》和《Life Goes On》分別作為專輯的第二首和第三首單曲。該專輯獲得第66屆葛萊美獎最佳流行演唱專輯提名。而他的第七張專輯《Autumn Variations》則發行於 2023 年 9 月 29 日在自己的唱片公司 Gingerbread Man Records 下發行。
希蘭在全球售出了超過 1.5 億張唱片,使他成為世界上最暢銷的音樂藝術家之一。他在美國擁有 1.01 億張 RIAA 認證唱片,而他的兩張專輯名列英國排行榜歷史上最暢銷專輯之列。2019 年 12 月,官方排行榜公司將他評為十年最佳藝術家,在 2010 年代英國專輯和單曲排行榜上取得了最大的綜合成功。截至 2022 年 4 月,他是 Spotify 上最受關注的藝術家。從2017 年3 月開始,他的÷ 巡演在2019 年8 月成為有史以來票房最高的巡演。作為倫敦國家青年劇院的校友,希蘭的表演角色包括出現在2019 年的電影《昨天Yesterday》中,扮演他自己。
🎧【試聽曲目】 · · · · · ·
   
----- all music copyrighted please purchase original materials -----
----- 所有的音樂只是試聽音質請購買原裝版本 -----
 
                
                    ${item.name}
                    ${item.singer}
                 
                
                    
                
             `;
    });
    $('.playlist').innerHTML = htmls.join('');
  },
  defineProperties: function () {
    Object.defineProperty(this, "currentSong", {
      get: function () {
        return this.songs[this.currentIndex];
      } });
  },
  handleEvents: function () {
    const _this = this;
    const cdWidth = cd.offsetWidth;
    // X? l? CD quay / d?ng
    const cdThumbAnimate = cdThumb.animate([{ transform: "rotate(360deg)" }], {
      duration: 10000, // 10 seconds
      iterations: Infinity });
    cdThumbAnimate.pause();
    // X? l? phóng to / thu nh? CD
    document.onscroll = function () {
      const scrollTop = window.scrollY || document.documentElement.scrollTop;
      const newCdWidth = cdWidth - scrollTop;
      cd.style.width = newCdWidth > 0 ? newCdWidth + "px" : 0;
      cd.style.opacity = newCdWidth / cdWidth;
    };
    // X? l? khi click play
    playBtn.onclick = function () {
      if (_this.isPlaying) {
        audio.pause();
      } else {
        audio.play();
      }
    };
    // Khi song ???c play
    audio.onplay = function () {
      _this.isPlaying = true;
      player.classList.add("playing");
      cdThumbAnimate.play();
    };
    // Khi song b? pause
    audio.onpause = function () {
      _this.isPlaying = false;
      player.classList.remove("playing");
      cdThumbAnimate.pause();
    };
    // Khi ti?n ?? bài hát thay ??i
    audio.ontimeupdate = function () {
      if (audio.duration) {
        const progressPercent = Math.floor(
        audio.currentTime / audio.duration * 100);
        progress.value = progressPercent;
      }
    };
    // X? l? khi tua song
    progress.oninput = function (e) {
      // t? s? ph?n tr?m c?a gi?y convert sang gi?y
      const seekTime = audio.duration / 100 * e.target.value;
      audio.currentTime = seekTime;
      audio.play();
    };
    // Khi next song
    nextBtn.onclick = function () {
      if (_this.isRandom) {
        _this.playRandomSong();
      } else {
        _this.nextSong();
      }
      audio.play();
      _this.render();
      _this.scrollToActiveSong();
    };
    // Khi prev song
    prevBtn.onclick = function () {
      if (_this.isRandom) {
        _this.playRandomSong();
      } else {
        _this.prevSong();
      }
      audio.play();
      _this.render();
      _this.scrollToActiveSong();
    };
    // X? l? b?t / t?t random song
    randomBtn.onclick = function (e) {
      _this.isRandom = !_this.isRandom;
      _this.setConfig("isRandom", _this.isRandom);
      randomBtn.classList.toggle("active", _this.isRandom);
    };
    // X? l? l?p l?i m?t song
    repeatBtn.onclick = function (e) {
      _this.isRepeat = !_this.isRepeat;
      _this.setConfig("isRepeat", _this.isRepeat);
      repeatBtn.classList.toggle("active", _this.isRepeat);
    };
    // X? l? next song khi audio ended
    audio.onended = function () {
      if (_this.isRepeat) {
        audio.play();
      } else {
        nextBtn.click();
      }
    };
    // L?ng nghe hành vi click vào playlist
    playlist.onclick = function (e) {
      let songNode = e.target.closest('.song:not(.active)');
      if (!e.target.closest('.option')) {
        if (songNode) {
          _this.currentIndex = Number(songNode.dataset.index);
          _this.loadCurrentSong();
          audio.play();
        }
      }
    };
  },
  scrollToActiveSong: function () {
    setTimeout(() => {
      if (this.currentIndex  {
      if (song.getAttribute('data-index') == this.currentIndex) {
        song.classList.add('active');
      }
    });
  },
  loadConfig: function () {
    this.isRandom = this.config.isRandom;
    this.isRepeat = this.config.isRepeat;
  },
  nextSong: function () {
    this.currentIndex++;
    if (this.currentIndex >= this.songs.length) {
      this.currentIndex = 0;
    }
    this.loadCurrentSong();
  },
  prevSong: function () {
    this.currentIndex--;
    if (this.currentIndex 
  
更多我的博客文章>>>