HTML5音频可视化频谱跳动代码

*{

margin:0;

padding:0;

}

#canvas {

display: block;

background: linear-gradient(135deg, rgb(142, 13, 133) 0%, rgb(230, 132, 110) 100%);

}

window.οnclick=function () {if(oAudio.paused) {

oAudio.play();

}else{

oAudio.pause();

}

}//创建音频上下文对象

var oCtx = newAudioContext();//console.log(oCtx);//创建媒体源,除了audio本身可以获取,也可以通过oCtx对象提供的api进行媒体源操作

var audioSrc =oCtx.createMediaElementSource(oAudio);//创建分析机

var analyser =oCtx.createAnalyser();//媒体源与分析机连接

audioSrc.connect(analyser);//输出的目标:将分析机分析出来的处理结果与目标点(耳机/扬声器)连接

analyser.connect(oCtx.destination);//效果(实现的具体方法)//绘制音频图的条数(fftSize)

/*根据分析音频的数据去获取音频频次界定音频图的高度

放在与音频频次等长的8位无符号字节数组

Uint8Array:初始化默认值为1024*/

//利用cancas渐变进行音频绘制

var ctx = canvas.getContext('2d');

canvas.width=window.innerWidth;

canvas.height=window.innerHeight;var oW =canvas.width;var oH =canvas.height;var color1 = ctx.createLinearGradient(oW / 2, oH / 2 - 30, oW / 2, oH / 2 - 100);var color2 = ctx.createLinearGradient(oW / 2, oH / 2 + 30, oW / 2, oH / 2 + 100);

color1.addColorStop(0, '#000');

color1.addColorStop(.5, '#069');

color1.addColorStop(1, '#f6f');

color2.addColorStop(0, '#000');

color2.addColorStop(.5, '#069');

color2.addColorStop(1, '#f6f');//音频图的条数

var count = 150;//缓冲区:进行数据的缓冲处理,转换成二进制数据

var voiceHeight = newUint8Array(analyser.frequencyBinCount);//console.log(voiceHeight);

function draw() {//将当前的频率数据复制到传入的无符号字节数组中,做到实时连接

analyser.getByteFrequencyData(voiceHeight);//console.log(voiceHeight);//自定义获取数组里边数据的频步

var step = Math.round(voiceHeight.length /count);

ctx.clearRect(0, 0, oW, oH);for (var i = 0; i < count; i++) {var audioHeight = voiceHeight[step *i];

ctx.fillStyle= color1; //绘制向上的线条

ctx.fillRect(oW / 2 + (i * 10), oH / 2, 7, -audioHeight);

ctx.fillRect(oW/ 2 - (i * 10), oH / 2, 7, -audioHeight);

ctx.fillStyle= color2; //绘制向下的线条

ctx.fillRect(oW / 2 + (i * 10), oH / 2, 7, audioHeight);

ctx.fillRect(oW/ 2 - (i * 10), oH / 2, 7, audioHeight);

}

window.requestAnimationFrame(draw);

}

draw();/*analyserNode 提供了时时频率以及时间域的分析信息

允许你获取实时的数据,并进行音频可视化

analyserNode接口的fftSize属性

fftSize:无符号长整型值,用于确定频域的FFT(快速傅里叶变换)

ffiSize属性值是从32位到32768范围内的2的非零幂,默认值是2048*/}

html频谱跳动效果,HTML5音频可视化频谱跳动代码相关推荐

  1. HTML5音频可视化频谱跳动代码

    今天学习到用canvas来写  HTML5音频可视化频谱跳动代码  将代码在此做一总结: <!DOCTYPE html> <html lang="en">& ...

  2. 傅里叶变换音频可视化_HTML5如何实现音频可视化频谱跳动

    本篇教程探讨了HTML5如何实现音频可视化频谱跳动,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < html> HTML5音频可视化频谱跳动代码 * { ...

  3. 傅里叶变换音频可视化_HTML5音频可视化频谱跳动代码

    HTML5音频可视化频谱跳动代码 *{ margin:0; padding:0; } #canvas { display: block; background: linear-gradient(135 ...

  4. vue组件可视化_Vue HTML5音频可视化组件

    vue组件可视化 视听 (vue-audio-visual) VueJS audio visualization components. VueJS音频可视化组件. Vue HTML5 audio v ...

  5. html 获取声音频谱,[前端]利用WebAudioAPI获取音频频谱(html5音频可视化)

    项目希望可以把音频可视化,有条随声音波动的曲线或者是像唱吧那种.开始是搜到了腾讯大腿(TGideas)写的audio可视化组件,想着直接用,后来各种原因还是打算自己重新写一个--虽然明显写得low了很 ...

  6. python音乐可视化效果_python 音频可视化

    2020-07-18 11:50:05 更新一个线条颜色渐变的方法: import matplotlib.pyplot as plt import numpy as np import pyaudio ...

  7. html5音频文件生成波形图代码,使用wavesurfer.js显示mp3 audio音频的波形图

    by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=8290 本文可全文转载,个人网站无需授权,只要保留原作者.出处以及文中链接即可, ...

  8. html5音频文件生成波形图代码,HTML5/D3.js 可视音频波形柱状图

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 (function() { var playBtn = document.getElementById('p ...

  9. 傅里叶变换音频可视化_H5录音音频可视化-实时波形频谱绘制、频率直方图

    这段时间给GitHub Recorder开源库添加了两个新的音频可视化功能,比以前单一的动态波形显示丰富了好多(下图后两行是不是比第一行看起来丰满些):趁热打铁写了一个音频可视化相关扩展测试代码,下面 ...

最新文章

  1. 【转载】VSCode+OpenCV+C++配置
  2. Java_IO流_抽象类
  3. 解Bug之路-Druid的Bug
  4. oppo计算机打不开怎么回事,一体机电脑突然关机了?然后就打不开了怎么回事啊?...
  5. 中央暗示:07年别急买房
  6. 【DP】【Asia - Harbin - 2010/2011】【Permutation Counting】
  7. 详解数据科学与数理统计的基本概念
  8. VMware中的三种网络模式-----NAT模式
  9. bldc 原理 方波控制_正弦波驱动BLDC原理
  10. Laravel 5.4 首次搭建,从 clone 到运行成功
  11. windows内核基础
  12. 详细解说“黑客”们热衷的热门抓鸡技术
  13. ResourceBundle 用法
  14. 最详细iOS打包流程
  15. 快速更换证件照背景颜色
  16. R语言系统教程(六):描述统计量
  17. 如何将Nios II硬件和软件合成一个文件(NIOS II)(硬件)(软件)(合并)
  18. 开发者硬核:Web3 DApp 最佳编程实践指南
  19. 知乎高赞:35岁的程序员,最后都去了哪儿?是在路边摊炒粉和做烤鸭?
  20. 解决Mac系统下需要每次配置环境的问题

热门文章

  1. jq ajax异步上传文件,jQuery插件ajaxFileUpload异步上传文件
  2. CentOS Linux 7.7 安装kafka zookeeper
  3. linux rpm包,安装路径查看及改变rpm包默认安装路径
  4. SpringBoot集成Editor.md 流程详细
  5. Sublime Text3 多行合并为一行
  6. Java 动态加载类
  7. 企业实战03:Oracle数据库_用户和表空间
  8. idea设置自动清除不需要的import包,自动清除导包
  9. 服务器cpu虚拟插槽,服务器更换cpu插槽
  10. linux modbus工具,基于ARM-Linux的Modbus串口服务器设计