html语音播放动画,html5 canvas+js音频可视化动画特效
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音频可视化动画特效相关推荐
- html乐谱播放器,html5 canvas音谱可视化mp3音乐播放器代码
特效描述:html5 canvas 音谱可视化 mp3音乐 播放器代码.html5 canvas通过AudioContext对获取audio标签播放的音域和音高,调用js绘制相应高度的矩形或线条. 代 ...
- html 语音播放插件,Html5添加audio音频播放器插件教程
一.方法: 使用Material design风格音频播放器插件需要引入jQuery和jaudio.min.js. 二.HTML结构 00:00 00:00 三.CSS样式 下面是该音频播放器的主要C ...
- html5实现canvas迷宫游戏,HTML5/Canvas/JS 迷宫生成动画
JavaScript 语言: JaveScriptBabelCoffeeScript 确定 /** * JS for Hartcore * Alexandre Andrieux @2015 */ va ...
- html落叶动画,HTML5 Canvas窗外秋日落叶动画
JavaScript 语言: JaveScriptBabelCoffeeScript 确定 var renderer, scene, camera, ww = window.innerWidth, w ...
- android 五彩纸屑动画,HTML5 Canvas五彩纸屑粒子动画特效
JavaScript 语言: JaveScriptBabelCoffeeScript 确定 const getRandom = (min, max) => { return Math.rando ...
- html5.js百度网盘,HTML5 Canvas+js仿百度网盘扫描文件过程加载动画
HTML5 Canvas+js仿百度网盘扫描文件过程加载动画 这是一款简单的HTML5 Canvas+js仿百度网盘扫描文件过程加载动画效果,网盘文件扫描百分比加载动画特效. var w=docume ...
- html5 canvas时光隧道3D粒子动画js特效
下载地址 html5 canvas时光隧道3D粒子动画特效是一款非常酷炫的3D粒子时光穿梭视觉冲击动画特效. dd:
- html5 canvas网页下雨场景动画js特效
下载地址一款透明的html5 canvas网页下雨场景动画特效,有意思的是按钮就像雨伞一样可以挡住雨水. dd:
- HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)
HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 原文:HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 看到网上很多展示html5雪花飞动 ...
最新文章
- 2022-2028年中国硅质原料行业全景调研及投资前景展望报告
- linux 播放器系统,在Linux上安装和使用开源视频播放器MPlayer
- ubtuntu server下的包管理
- xml文件的三种解析方式 DOM SAM PULL
- SignalTap II里面Power-Up Trigger的使用
- JAVA入门到精通(3)IDEA开发工具的使用
- c语言中ftell函数是什么
- SLIC超像素分割算法
- linux下的文件io编程实现文件的拷贝
- python实践项目 航空公司客户价值分析
- 计算机中任务管理器的主要功能是什么,任务管理器的作用有哪些 可以解决9成电脑问题...
- 叛乱2 linux服务器,叛乱沙漠风暴怎么开服?开服操作指南详解
- 35岁仍然落魄,有这3个苗头将大器晚成,你要刮目相看,主动结交
- MySQL优化之执行计划
- Android集成bilibili播放器以及弹幕
- 新浪小编为您介绍留声机的古与今
- week11——实验(月模拟题3:CSP201609 03)
- 电容在电路中各种作用汇总(内容很干)
- C语言程序设计谭浩强第五版复习梳理2
- Windows远程连接服务器
热门文章
- HTML旋转的太极图
- 用写作精进技术,推荐这几位朋友
- 安装docker时出现以下错误:Package ‘docker-ce‘ has no installation candidate
- 程序员高铁上撸代码被拍,头发这么多,肯定不是程序员
- 2013年IT行业应届生薪水大曝光
- 学完了在线课程?如何开启深度学习论文的阅读模式
- win10将批处理文件(xxx.bat)固定到开始屏幕或任务栏
- 苹果为什么这么红?——美国之行总结短评之一
- 基于JAVA图书馆借阅系统计算机毕业设计源码+数据库+lw文档+系统+部署
- CSS3干货9:做一个弹跳动画