html5 canvas+js实现的音频可视化动画特效,选择一首本地音频文件播放查看效果。

查看演示

下载资源:

13

次 下载资源

下载积分:

20

积分

js代码

window.onload = function () {

var file = document.getElementById("file");

var audio = document.getElementById("audio");

file.onchange = function () {

//part1: 画布

var canvas = document.getElementById("canvas");

var context = canvas.getContext("2d");

canvas.width = window.innerWidth;

canvas.height = window.innerHeight;

var WIDTH = canvas.width;

var HEIGHT = canvas.height;

//part2: 音频

var files = this.files;//声音文件

audio.src = URL.createObjectURL(files[0]);

audio.load();

//part3: 分析器

var AudCtx = new AudioContext();//音频内容

var src = AudCtx.createMediaElementSource(audio);

var analyser = AudCtx.createAnalyser();

src.connect(analyser);

analyser.connect(AudCtx.destination);

analyser.fftSize = 128;//快速傅里叶变换, 必须为2的N次方

var bufferLength = analyser.frequencyBinCount;// = fftSize * 0.5

//part4: 变量

var barWidth = (WIDTH / bufferLength) - 1;//间隔1px

var barHeight;

var dataArray = new Uint8Array(bufferLength);//8位无符号定长数组

//part5: 动态监听

function renderFrame() {

requestAnimationFrame(renderFrame);//方法renderFrame托管到定时器,无限循环调度,频率<16.6ms/次

context.fillStyle = "#000";//黑色背景

context.fillRect(0, 0, WIDTH, HEIGHT);//画布拓展全屏,动态调整

analyser.getByteFrequencyData(dataArray);//获取当前时刻的音频数据

//part6: 绘画声压条

var x = 0;

for (var i = 0; i < bufferLength; i++) {

var data = dataArray[i];//int,0~255

var percentV = data / 255;//纵向比例

var percentH = i / bufferLength;//横向比例

barHeight = HEIGHT * percentV;

//gbk,0~255

var r = 255 * percentV;//值越大越红

var g = 255 * percentH;//越靠右越绿

var b = 50;

context.fillStyle = "rgb(" + r + "," + g + "," + b + ")";

context.fillRect(x, HEIGHT - barHeight, barWidth, barHeight);

x += barWidth + 1;//间隔1px

}

}

renderFrame();

//part7: 播放声音

audio.play();

};

};

html语音播放动画,html5 canvas+js音频可视化动画特效相关推荐

  1. html乐谱播放器,html5 canvas音谱可视化mp3音乐播放器代码

    特效描述:html5 canvas 音谱可视化 mp3音乐 播放器代码.html5 canvas通过AudioContext对获取audio标签播放的音域和音高,调用js绘制相应高度的矩形或线条. 代 ...

  2. html 语音播放插件,Html5添加audio音频播放器插件教程

    一.方法: 使用Material design风格音频播放器插件需要引入jQuery和jaudio.min.js. 二.HTML结构 00:00 00:00 三.CSS样式 下面是该音频播放器的主要C ...

  3. html5实现canvas迷宫游戏,HTML5/Canvas/JS 迷宫生成动画

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 /** * JS for Hartcore * Alexandre Andrieux @2015 */ va ...

  4. html落叶动画,HTML5 Canvas窗外秋日落叶动画

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 var renderer, scene, camera, ww = window.innerWidth, w ...

  5. android 五彩纸屑动画,HTML5 Canvas五彩纸屑粒子动画特效

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 const getRandom = (min, max) => { return Math.rando ...

  6. html5.js百度网盘,HTML5 Canvas+js仿百度网盘扫描文件过程加载动画

    HTML5 Canvas+js仿百度网盘扫描文件过程加载动画 这是一款简单的HTML5 Canvas+js仿百度网盘扫描文件过程加载动画效果,网盘文件扫描百分比加载动画特效. var w=docume ...

  7. html5 canvas时光隧道3D粒子动画js特效

    下载地址 html5 canvas时光隧道3D粒子动画特效是一款非常酷炫的3D粒子时光穿梭视觉冲击动画特效. dd:

  8. html5 canvas网页下雨场景动画js特效

    下载地址一款透明的html5 canvas网页下雨场景动画特效,有意思的是按钮就像雨伞一样可以挡住雨水. dd:

  9. HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)

    HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 原文:HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 看到网上很多展示html5雪花飞动 ...

最新文章

  1. 2022-2028年中国硅质原料行业全景调研及投资前景展望报告
  2. linux 播放器系统,在Linux上安装和使用开源视频播放器MPlayer
  3. ubtuntu server下的包管理
  4. xml文件的三种解析方式 DOM SAM PULL
  5. SignalTap II里面Power-Up Trigger的使用
  6. JAVA入门到精通(3)IDEA开发工具的使用
  7. c语言中ftell函数是什么
  8. SLIC超像素分割算法
  9. linux下的文件io编程实现文件的拷贝
  10. python实践项目 航空公司客户价值分析
  11. 计算机中任务管理器的主要功能是什么,任务管理器的作用有哪些 可以解决9成电脑问题...
  12. 叛乱2 linux服务器,叛乱沙漠风暴怎么开服?开服操作指南详解
  13. 35岁仍然落魄,有这3个苗头将大器晚成,你要刮目相看,主动结交
  14. MySQL优化之执行计划
  15. Android集成bilibili播放器以及弹幕
  16. 新浪小编为您介绍留声机的古与今
  17. week11——实验(月模拟题3:CSP201609 03)
  18. 电容在电路中各种作用汇总(内容很干)
  19. C语言程序设计谭浩强第五版复习梳理2
  20. Windows远程连接服务器

热门文章

  1. HTML旋转的太极图
  2. 用写作精进技术,推荐这几位朋友
  3. 安装docker时出现以下错误:Package ‘docker-ce‘ has no installation candidate
  4. 程序员高铁上撸代码被拍,头发这么多,肯定不是程序员
  5. 2013年IT行业应届生薪水大曝光
  6. 学完了在线课程?如何开启深度学习论文的阅读模式
  7. win10将批处理文件(xxx.bat)固定到开始屏幕或任务栏
  8. 苹果为什么这么红?——美国之行总结短评之一
  9. 基于JAVA图书馆借阅系统计算机毕业设计源码+数据库+lw文档+系统+部署
  10. CSS3干货9:做一个弹跳动画