【项目】H5打造可视化音乐播放器

运用中心构造引见

《【项目】H5打造可视化音乐播放器》

运用技术栈

  • 效劳端:Node+Express+ejs

  • 前端界面:HTML+CSS(CSS3)+JS

  • 音频操纵:webAudio

  • 音频数据可视化:Canvas

项目构建

  1. 全局装置express:npm install -g express-generator

  2. 运用ejs模板引擎,新建项目music:express –view=ejs music

  3. 进入项目目次装置依靠:cd music && npm install

  4. 装置项目更改及时监控东西:npm install -g supervisor

  5. 启动效劳并搜检项目是不是胜利建立:supervisor bin/www && 观察默许3000端口127.0.0.1:3000

详析重要API

  1. AudioContext对象:可理解为audio上下文对象,包括AudioNode对象以及它们的联络的对象,平常情况下,一个document中只要一个AudioContext对象,重要用到其两个属性四个要领:

  • destination属性:AudioDestinationNode对象,一切音频输出聚集地,相当于音频的硬件,一切AudioNode都直接或间接连接到这里

  • currentTime属性:AudioContext从建立最先到当前的时候(秒)

  • decodeAudioData(arrayBuffer,succ(buffer),err)要领:异步解码包括在arrayBuffer中音频数据

  • createBufferSource()要领:建立AudioBufferSourceNode对象

  • createAnalyser()要领:建立AnalyserNode对象

  • createGain()/createGainNode()要领:建立GainNode对象

  1. AudioBufferSourceNode对象,示意内存中的一段音频资本,其音频数据存储在AudioBuffer的buffer属性中,其有三个属性:

  • buffer属性,AudioBuffer对象,示意要播放的音频资本数据,子属性:duration,示意该音频资本的时长

  • loop属性,是不是轮回播放,默许为false

  • onenload属性,绑定音频播放终了挪用的事宜处置惩罚顺序

  • start/noteOn(when=ac.currentTime,offset=0;duration=buffer.duration-offset),最先播放音频

  • stop/noteOff(when=ac.currentTime),完毕播放音频

  1. GainNode转变音频音量的对象,会转变经由过程它的音频数据一切的sample frame的信号强度,其属性:

  • gain,是AudioParam对象,经由过程转变其value值,能够转变音频信号的信号强弱,最小值为0,最大值为1,默许为1

  1. AnalyserNode音频剖析对象,能及时的剖析音频资本的时域和频域信息,但不对音频流做任何处置惩罚,属性:

  • fftSize:设置FFT值的大小,用于剖析获得频域,为32-2048之间2的整数次倍,默许为2048,及时获得的音频数据域的个数为fftSize的一半

  • frequencyBinCount:及时获得的音频频域域的数据个数,为FFT值的一半

  • getByteFrequencyData(Uint8Array)复制音频当前的频域数据到Uint8Array中

    原文作者:张爱玲
    原文地址: https://segmentfault.com/a/1190000010194551
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞