张鑫旭大神的实例(鼠标hover按钮无中生有播放声音demo)
来源:互联网 发布:faded软件下载 编辑:程序博客网 时间:2024/05/21 09:09
文章地址:http://www.zhangxinxu.com/wordpress/2017/06/html5-web-audio-api-js-ux-voice/
HTML代码:<button id="button">经过我</button>JS代码:window.AudioContext = window.AudioContext || window.webkitAudioContext;(function () { if (!window.AudioContext) { alert('当前浏览器不支持Web Audio API'); return; } // 按钮元素 var eleButton = document.getElementById('button'); // 创建新的音频上下文接口 var audioCtx = new AudioContext(); // 发出的声音频率数据,表现为音调的高低 var arrFrequency = [196.00, 220.00, 246.94, 261.63, 293.66, 329.63, 349.23, 392.00, 440.00, 493.88, 523.25, 587.33, 659.25, 698.46, 783.99, 880.00, 987.77, 1046.50]; // 音调依次递增或者递减处理需要的参数 var start = 0, direction = 1; // 鼠标hover我们的按钮的时候 eleButton.addEventListener('mouseenter', function () { // 当前频率 var frequency = arrFrequency[start]; // 如果到头,改变音调的变化规则(增减切换) if (!frequency) { direction = -1 * direction; start = start + 2 * direction; frequency = arrFrequency[start]; } // 改变索引,下一次hover时候使用 start = start + direction; // 创建一个OscillatorNode, 它表示一个周期性波形(振荡),基本上来说创造了一个音调 var oscillator = audioCtx.createOscillator(); // 创建一个GainNode,它可以控制音频的总音量 var gainNode = audioCtx.createGain(); // 把音量,音调和终节点进行关联 oscillator.connect(gainNode); // audioCtx.destination返回AudioDestinationNode对象,表示当前audio context中所有节点的最终节点,一般表示音频渲染设备 gainNode.connect(audioCtx.destination); // 指定音调的类型,其他还有square|triangle|sawtooth oscillator.type = 'sine'; // 设置当前播放声音的频率,也就是最终播放声音的调调 oscillator.frequency.value = frequency; // 当前时间设置音量为0 gainNode.gain.setValueAtTime(0, audioCtx.currentTime); // 0.01秒后音量为1 gainNode.gain.linearRampToValueAtTime(1, audioCtx.currentTime + 0.01); // 音调从当前时间开始播放 oscillator.start(audioCtx.currentTime); // 1秒内声音慢慢降低,是个不错的停止声音的方法 gainNode.gain.exponentialRampToValueAtTime(0.001, audioCtx.currentTime + 1); // 1秒后完全停止声音 oscillator.stop(audioCtx.currentTime + 1); });})();
阅读全文
0 0
- 张鑫旭大神的实例(鼠标hover按钮无中生有播放声音demo)
- 点击按钮播放声音
- javaSE播放声音实例
- 点击按钮播放音乐的demo
- 按钮、声音相关、鼠标相关
- 添加按钮声音 播放声音
- html制作有声效的按钮,让html播放声音(兼容ie6)
- Unity3D开发之3D按钮的声音播放
- Java中播放声音实例
- 系统声音服务的使用(播放声音、震动)
- iPhone开发播放音乐与按钮声音
- 点击按钮播放声音简单实现。
- 纯 CSS3 打造的按钮实例 | HTML5、CSS3、DEMO 实例
- 播放器的声音
- 播放声音的问题
- Jquery之鼠标滑动li --hover--背景色变蓝色实例(十八)
- 播放声音(转)
- 提醒窗口,单按钮,多按钮,播放声音,播放声音振动
- Java for循环后大括号
- 教学用上云办公,老师省事了
- 吴恩达 机器学习笔记二(lecture 2)(损失函数、梯度下降)
- btrfs cfq, noop, deadline三种IO调度策略下的IO性能表现(gp针对grup.conf配置)
- IOS精品源码,日期选择控件异步进度提示皮肤管理器手势解锁分段选择栏源码
- 张鑫旭大神的实例(鼠标hover按钮无中生有播放声音demo)
- Unity Shader 学习笔记(19) 屏幕后处理效果、调整亮度、饱和度、对比度
- SpringCloud消息总线
- Hibernate的generator属性
- IDEA发布项目 导包出错
- python之_requests库学习_2(post请求参数传递)
- leetcode 28. Implement strStr()
- 解决HotClickView开启移动和缩放后热区与背景bitmap显示错位的问题
- 揭秘入围央采的锐捷大数据安全平台是什么东西?