媲美AE特效的Web音樂播放器——Azusa!

image

又是一期新的特效安利,咳咳贡必,準確說應該是第二期兔港。如上圖,這次介紹的就是上次說過的炫酷音樂播放器——Azusa!

Azusa

Three.js開發(fā)仔拟,媲美AE特效的網(wǎng)頁端音樂播放器衫樊!
作者大佬:EYHN
Azusa代碼倉庫:github.com/EYHN/Azusa
demo預覽:www.hojun.cn/azusa
gif圖預覽:

image

視頻預覽:
https://www.bilibili.com/video/av48789169

網(wǎng)頁使用教程

參考Azusa倉庫地址的教程的umd部分:

<div id="bg"></div>
<canvas id="app"></canvas>

<script src="https://cdn.jsdelivr.net/npm/three"></script>
<script src="./lib/azusa.min.js"></script>
<script>

  const azusa = new Azusa({
    view: document.getElementById('app'),
    subdivisionSize: 1024,
    cutEnd: 256
  });

  azusa.audio.load({
    src: './example/media/cha.mp3',
    onPrgress: (xhr) => {
      console.log((xhr.loaded / xhr.total * 100) + '% loaded');
    }
  });

  azusa.audio.setVolume(0.5);

  window.addEventListener('resize', () => {
    azusa.resize(window.innerWidth, window.innerHeight);
  })

  const container = document.getElementById('bg')
  container && (container.style.backgroundImage = "url(./example/media/9s.jpg)")

</script>

注意

  • 上面份代碼跑不起來,原因是新版的three舍棄了一些方法利花。于是查看作者的commit信息科侈,發(fā)現(xiàn)作者開發(fā)的使用使用的是three.js的0.85.0版本。所以需要指明three版本炒事,博主試過0.102以下版本都行臀栈。
  • 降低了thress.js版本后還需要在服務器環(huán)境下運行才能查看效果。
  • 音樂在新版谷歌瀏覽器下不能制動播放羡洛,要加用戶交互才行

博主修改過程

第一步挂脑,使用git clone 命令 克隆Azusa github源碼。

git clone git@github.com:EYHN/Azusa.git

看源碼雖然吃力欲侮,但是了解這個項目最好的途徑崭闲。

第二步,修改example的代碼威蕉,解決之前發(fā)現(xiàn)的問題刁俭。

<link rel="stylesheet" ><style>
<script src="./js/three.js"></script>
<script src="./js/azusa.js"></script>
<script
  src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>

直接將three和需要的js下載到本地,防止資源丟失導致不可以韧涨。其中three.js是從npm下載的0.85版本牍戚。還引入了font-awesome圖標庫和jquery的依賴。

const azusa = new Azusa({
  view: document.getElementById('app'),
  subdivisionSize: 1024,
  cutEnd: 256
});
const container = document.getElementById('bg')
container && (container.style.backgroundImage = "url('https://ws4.sinaimg.cn/large/006bYVyvly1g1tbar03aaj31hc0u0hdv.jpg')")
azusa.audio.load({
  src: './media/s.mp3',
  onPrgress: (xhr) => {
    if(xhr.loaded == 11005954) {
      console.log('加載完成');
    };
  }
});
azusa.audio.setVolume(0.5);

window.addEventListener('resize', () => {
  azusa.resize(window.innerWidth, window.innerHeight);
})
$('.play').click(function(){
  if ($(this).hasClass('fa-play')) {
    azusa.audio.play();
    console.log('zzbf')
    $(this).addClass('fa-pause');
    $(this).removeClass('fa-play');
  } else {
    azusa.audio.stop();
    $(this).addClass('fa-play');
    $(this).removeClass('fa-pause');
  }
});

修改js的代碼虑粥,使用播放按鈕控制音樂播放如孝,停止。解決新版Chrome瀏覽器下不能自動播放的問題娩贷。暫時不能使音樂暫停再續(xù)播第晰,因為沒在代碼里找到pause的方法,只找到了個stop停止的方法彬祖,但是會導致音樂重新播放茁瘦。其中stop還需要修改azusa.js代碼給它定義實現(xiàn),代碼如下:

Audio.prototype.stop = function(){
  this.sound.stop();
};

至于我為啥知道sound有stop方法储笑,當然是看源碼知道的啊甜熔。然后隨帶把load方法里面的play也去掉了,點擊播放的時候再調(diào)用play方法突倍。

未解決bug

網(wǎng)頁打開后極短時間內(nèi)點擊播放按鈕并不能播放音樂腔稀,要延遲個二三秒鐘點擊播放按鈕才解決盆昙,有大佬知道原因的歡迎留言~

完。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烧颖,一起剝皮案震驚了整個濱河市弱左,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炕淮,老刑警劉巖拆火,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涂圆,居然都是意外死亡们镜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門润歉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來模狭,“玉大人,你說我怎么就攤上這事踩衩〗鲤模” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵驱富,是天一觀的道長锚赤。 經(jīng)常有香客問我,道長褐鸥,這世上最難降的妖魔是什么线脚? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮叫榕,結(jié)果婚禮上浑侥,老公的妹妹穿的比我還像新娘。我一直安慰自己晰绎,他們只是感情好寓落,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荞下,像睡著了一般伶选。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锄弱,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天考蕾,我揣著相機與錄音祸憋,去河邊找鬼会宪。 笑死,一個胖子當著我的面吹牛蚯窥,可吹牛的內(nèi)容都是我干的掸鹅。 我是一名探鬼主播塞帐,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼巍沙!你這毒婦竟也來了葵姥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤句携,失蹤者是張志新(化名)和其女友劉穎榔幸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體矮嫉,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡削咆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蠢笋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拨齐。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖昨寞,靈堂內(nèi)的尸體忽然破棺而出瞻惋,到底是詐尸還是另有隱情,我是刑警寧澤援岩,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布歼狼,位于F島的核電站,受9級特大地震影響窄俏,放射性物質(zhì)發(fā)生泄漏蹂匹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一凹蜈、第九天 我趴在偏房一處隱蔽的房頂上張望限寞。 院中可真熱鬧,春花似錦仰坦、人聲如沸履植。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玫霎。三九已至,卻和暖如春妈橄,著一層夾襖步出監(jiān)牢的瞬間庶近,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工眷蚓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鼻种,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓沙热,卻偏偏與公主長得像叉钥,于是被迫代替她去往敵國和親罢缸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5投队? 答:HTML5是最新的HTML標準枫疆。 注意:講述HT...
    kismetajun閱讀 27,474評論 1 45
  • hello everybody,我是你們的騷年同學~ 非常抱歉遲遲沒有更新敷鸦,只能讓你們看我的碎碎念~ 快期末了息楔,跟...
    袁家有女就是我閱讀 162評論 0 0
  • 摘自附中情意館 本文作者永樂大帝二世,是一位商業(yè)銀行HR蟆淀,接待了一群到銀行的實習生拯啦,然后觀察他們?nèi)松l(fā)生的一系列的...
    dmpfczxtfi閱讀 455評論 0 0
  • 列夫·托爾斯泰,一座令人景仰的圣山熔任,人們將他視為世界文學史上繼古希臘文學褒链、莎士比亞之后的第三個高峰;《戰(zhàn)爭與...
    貓一只閱讀 1,354評論 5 12
  • 2019年1月16日 晴 星期三 農(nóng)歷臘月十一 投資孩子疑苔,就是投資自己后半生的幸福 今天跟五年級一位美女媽媽聊...
    博奧跆拳道權教練閱讀 232評論 0 2