HTML5中如何开发动态音频图

  介绍

这篇文章将为大家详细讲解有关HTML5中如何开发动态音频图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强>概要

用到的技术点:
(1) js
(2)帆布+音频
(3) Web音频API

实现方式:

(1)首先对于界面实现的考虑,由于区块非常多,我们使用传统dom节点实现是非常困难的(会占用大量的电脑CPU)。在这里,我们考虑使用帆布进行渲染
(2)前端中,我们遵循尽量少用js控制dom节点的原则。能用css3实现的特效,就不要用js实现。(因为js不是标记语言,而是脚本语言,不与HTML5是同一种语言。会浪费浏览器大量时间加载,造成浏览器性能的浪费),因此,用js就少用dom,用dom就尽量用css。
(3)通过Web音频API在音频节点上进行音频操作(即实现音频可视化),流程图如下:

 HTML5中如何开发动态音频图

在图中,音频上下文提供了音频处理的一套系统方法。输入源指音乐文件,通过名称引入;效果就是对输入源进行加工,如制作音频图,音波图,3 d环绕,低音音效等;输出就是把效果输出到耳机,扬声器等目的地。

<强>帆布引入

在当下,除了布局使用dom节点外,特效基本都是通过画布上实现了。

帆布好处:
(1)写特效非常强大,性能优
(2)用于做游戏。由于flash将于2020年退役,现在的游戏开始转向用HTML5制作
(3)前端渲染大数据,数据可视化,大屏数据展示

帆布流程:通过js创建画笔

& lt; ! DOCTYPE  html>   & lt; html  lang=癳n"祝辞   & lt; head>   ,,,& lt; meta  charset=癠TF-8"比;   ,,,& lt; meta  name=皏iewport",内容=翱矶?设备宽度,初始=1.0,比;   ,,,& lt; title> Document      ,,,& lt; style 类型=拔谋?css"比;   ,,,,,,,* {   ,,,,,,,,,,,保证金:,0;   ,,,,,,,,,,,/*,外边距为0,使画布能够占满全屏,*/,,,,,,,}   ,,,,,,,{#画布   ,,,,,,,,,,,背景:,线性渐变(   ,,,,,,,,,,,,,,,135度,   ,,,,,,,,,,,,,,,rgb (142132133), 0%,   ,,,,,,,,,,,,,,,rgb (230132110), 100%   ,,,,,,,,,,,);   ,,,,,,,,,,,/*创建线性渐变图像*/,,,,,,,}   ,,,,,,,   ,,,& lt;/style>   & lt;/head>   & lt; body>   ,,,& lt; canvas  id=癱anvas",宽度=?00“,身高=?00“祝辞& lt;/canvas>      ,,,& lt; script>   ,,,,,,,var  cxt=canvas.getContext (& # 39; 2 d # 39;);//创建了画笔   ,,,,,,,cxt.beginPath();//开始画   ,,,,,,,cxt.closePath();//画完的了   ,,,,,,,   ,,,,,,,cxt.fillStyle=& # 39; # f2f& # 39;;   ,,,,,,,cxt.arc (250250100 0 2 * Math.PI假);   ,,,,,,,cxt.fill ();   ,,,& lt;/script>   & lt;/body>   & lt;/html>

在创建线性渐变图像时,若100%后边加“,”,谷歌便加载不出来,若不加,便能加载出来。但是不知道为何

这里尤其注意js里帆布的流程,创建画笔——》开始画——》画完了——》补充颜色,形状信息。其中前三步都是套路,只有如何去画根据任务的不同,代码不同

<强> Web音频APi流程

& lt; ! DOCTYPE  html>   & lt; html  lang=癳n"祝辞   & lt; head>   ,,,& lt; meta  charset=癠TF-8"比;   ,,,& lt; meta  name=皏iewport",内容=翱矶?设备宽度,初始=1.0,比;   ,,,& lt; title> Document   & lt;/head>   & lt; body>   ,,,& lt; audio  id=癮udio", src=https://www.yisu.com/zixun/癿p3/1.mp3”控制>      <>脚本         var oCtx=new AudioContext();//创建音频对象      var oAudio=document.querySelector(“音频”);   var audioSrc=oCtx.createMediaElementSource (oAudio);//给音频对象创建媒体源      var分析器=oCtx.createAnalyser();//创建分析机   audioSrc.connect(分析器);//把分析机连接到媒体源上   analyser.connect (oCtx.destination);//把分析机得到的结果和扬声器相连>   

这里要注意的是,中音频的播放,js中的音频。玩()已经失效(谷歌浏览器的安全策略:声音不能自动播放,必须在用户有了操作后才能播放)

上述流程中少了最关键的一步:如何分析音频数据,这一步根据实现的任务不同,内容不同。但是其余的步骤都是一样的,满满的套路

<强>动态音频图的开发

& lt; ! DOCTYPE  html>   & lt; html  lang=癳n"祝辞   & lt; head>   ,,,& lt; meta  charset=癠TF-8"比;   ,,,& lt; meta  name=皏iewport",内容=翱矶?设备宽度,初始=1.0,比;   ,,,& lt; title> Document

HTML5中如何开发动态音频图