记一次做九宫格抽奖转动音效嘟嘟嘟

采用的文章的地址:https://blog.csdn.net/qq_39759115/article/details/78604912

当我知道要做一个九宫格抽奖的时候,心里很崩溃,正值毕业季,毕设都忙不过来,于是我翻了很多抽奖的博客,最终找到了这一篇,现在我完成了,可是我不知道我当时是翻的哪位小姐姐小哥哥的博客了,就没有引用链接。
这是界面,概率什么的都加上去了,准备交差,结果要做一个嘟嘟嘟的音效,就像lh机抽奖的音效,每转一个格子就响一声音效。然后我找到了这段代码,代码如下

<div id="div_play1" style='display: none'></div>
<div id="div_play2" style='display: none'></div><script type="text/javascript">
function play()
{var url = "Msg.mp3";var div = document.getElementById('div_play1');div.innerHTML = '<embed src="'+url+'" loop="1" autostart="true" hidden="true"></embed>';var emb = document.getElementsByTagName('EMBED')[0];if (emb) {div = document.getElementById('div_play2');div.innerHTML = 'loading: '+emb.src;setTimeout(function(){div.innerHTML='';},1000);}
}
</script>

把play()方法到 点击事件里面,结果只实现了,点击抽奖响起一段音效,不能让音效跟随格子的转动而嘟嘟嘟的响。而且就算可以伴随格子的转动响,全程都是一种声音太单调了,于是我大脑搜索关键字,继续寻找方法。
找到一篇博客,关于OscillatorNode的,调用系统里面的音效创建一个周期性波形震荡,加进去后就实现了转动一个格子,响一声,而且还会每个音调都不一样,音调上坡,然后音调下坡。

window.AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();//实例化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;
function test() {//当前频率var frequency = arrFrequency[start];//如果到头,改变音调的变化规则if (!frequency) {direction = -1 * direction;start = start + 2 * direction;frequency = arrFrequency[start];}//改变索引start = start + direction;//创建一个oscillator,它表示一个周期性波形震荡,基本上来说创造了一个音调var oscillator = audioCtx.createOscillator();//创建一个gainNode,控制音频的总音量var gainNode = audioCtx.createGain();//把音量,音调和终结点进行关联oscillator.connect(gainNode);//audioCtx.destination返回audioDestinationNode对象,表示当前audio context中所有节点的最终节点,表示音频渲染设备gainNode.connect(audioCtx.destination);//指定音调的类型oscillator.type = 'sine';//设置当前播放声音的频率,也就是最终播放声音的调调oscillator.frequency.value = frequency;//当前时间音量设置为0gainNode.gain.setValueAtTime(0, audioCtx.currentTime);//0.01秒后音量为1gainNode.gain.linearRampToValueAtTime(1, audioCtx.currentTime + 0.01);//音调从当前时间开始播放oscillator.start(audioCtx.currentTime);//一秒内声音慢慢降低gainNode.gain.exponentialRampToValueAtTime(0.001, audioCtx.currentTime + 1);//1秒后声音完全停止oscillator.stop(audioCtx.currentTime + 1);
};

记一次做九宫格抽奖转动音效嘟嘟嘟相关推荐

  1. python 还原九宫格图片_用Python做一个好玩的朋友圈九宫格抽奖

    最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 设计思路 以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽&qu ...

  2. 用Python做一个好玩的朋友圈九宫格抽奖

    最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 哈哈,笑出猪叫!这个玩法利用了朋友圈发长图会显示中间局部的设定,搞笑之余也为朋友圈广告营销贡献了新思路. 制作图的过程也不复杂,长图对应部分设计好 ...

  3. python社团宣传语_用Python做一个好玩的朋友圈九宫格抽奖

    最近在朋友圈看到个好玩的抽奖九宫格: 随便点开一个: 设计思路 以朋友圈中看到的1号图做参考,我们需要准备 300*900 的白色底图,搞笑表情图,广告语,中间一个醒目的数字编号,外加下方的嘲讽&qu ...

  4. JS + CSS 做一个简易九宫格抽奖

    目录 1.CSS样式 2.JS动作 大概做出来就是这个样子,alert的弹窗样式我也没改,就默认的. 1.CSS样式 样式大概分以下方面: 创建外框及内框样式: 8个奖品小方格和中间按钮小方格: 奖品 ...

  5. 基于Canvas的九宫格抽奖,就是仿csdn的APP做的,能过审不?

    引言: 九宫格抽奖一直就挺火爆,手机端也经常用,这不来了兴趣写了一波,看着效果还不错,拿出来大家唠唠! 效果: 实现思路 绘制出背景大图,两张图片,一张稍微小,并且稍小的图片颜色更深一些: 绘制8张白 ...

  6. 基于React跑一个简易版九宫格抽奖

    写在前面,年会将至,需求自然也跟各种抽奖有关啦.最近刚好接了一个紧急的九宫格抽奖需求,顺便也记录一下撸这个简易九宫格的过程吧. 本文可能涉及以下内容: 九宫格布局 九宫格动效 抽奖逻辑处理 前后端联调 ...

  7. 女友的生日礼物能随便嘛?Python小妙招:制作一款出圈九宫格抽奖小程序。

    导语 上一期文章是写的九宫格切图,都说很好看~朋友圈的九宫格也大受欢迎! 其实吧:最近女朋友要生日了,我问她要什么吧,她就说"随便",我这一想,顿时恼火啊,说随便,但是当男朋友的也 ...

  8. html+抽奖游戏,九宫格抽奖HTML+JS版

    div{ margin: 100px auto 0px; // 居中 width:500px; height:250px; border:3px solid black; // 边框 } li{ wi ...

  9. Android打造流畅九宫格抽奖

    因为company项目中需要做九宫格抽奖活动,以前都没有做过类似的功能,虽然之前在浏览大神们的博客中,无意中也看到了好多关于抽奖的项目,但因为项目中没有需要,一直都没有点击进去看.这次不去看估计不行. ...

最新文章

  1. python中的lambda匿名函数
  2. 近朱者赤,近墨者还是赤
  3. python编程入门与案例详解pdf-Flutter技术入门与实战 PDF 清晰版
  4. 题目1470:调整方阵
  5. mysql计算秒_如何在MySQL中基于秒计算时间?
  6. 10.热空气扭曲效果
  7. oracle sysdate 截取年月日,oracle中extract()函数----用于截取年、月、日、时、分、秒...
  8. python 二维矩阵及转byte知识点
  9. 怎样在百度地图上画圈_知识地图分享:你不是记忆差,你只是没找对方法
  10. 使用ionic2开发一个登录功能
  11. svn checkout的时候报E000022错误
  12. 转iOS逆向工程:Reveal查看任意app的高级技巧!
  13. Windows XP终极优化设置(精心整理)
  14. 编程与python的区别_python与其他编程语言区别全在这
  15. linux备份mysql部分表数据,mysqldump导出表的部分数据库
  16. 在杭州云栖大会,我们看到了一个新的阿里巴巴
  17. IDEA连接MySQL数据源配置和mybatis整合
  18. webstorm常用插件 最后一个最好
  19. ck3m多轴运动控制器笔记1:电机的配置与注意事项
  20. clickhouse 生产集群部署之坑坑洼洼(二)

热门文章

  1. 魔兽世界: 向操作高手迈进
  2. “认识的人越多,我就越喜欢狗”
  3. 多核危机:Scala vs. Erlang
  4. Linux的super super super easy教程 | sed 以及查找类命令
  5. win11任务栏卡死,重启也没用,该怎么办
  6. 设计系统简史——过去,现在与可能的未来
  7. CSDN日报190314:我能够入职世界顶尖的卡巴斯基,却被国内的安全公司拒之门外
  8. 网络 osi七层协议
  9. “光驱不见了”的解决方法
  10. Edge浏览器打不开网页但Chrome可以