HTML5 Web Audio Api-2 发声oscillator

(Web Audio Api基础信息整理中,到时候补上)

oscillator的意思是振荡器,众所周知,声音就是物体振动产生的声波。

在Web Audio Api中,官方给我们提供了一个振荡器 需要用createOscillator去初始。

当然光有一个振荡器也是不行的,我们需要一个介质将声音传送出去,在Web Audio Api中,我们有个觉destination的变量,他就是我们的“播放器”

使用oscillator.connect(context.destination);去连接。

相同的 我们也可以用oscillator.disconnetc();去解除连接关系

因为有振动,所以就有频率。

oscillator.frequency.value 就是这个音节频率的参数,单位是hz

好了 长话短说 上代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        .button {
            margin-left: auto;margin-right: auto;width: 40%;height: 50px;background-color: aqua;border-radius: 5px;text-align: center;line-height: 50px;
        }
    </style>
</head>
<body>
<div οnclick="makeNoise()" class="button">点击发声</div>
<script type="application/javascript">
    var AudioContext=AudioContext||webkitAudioContext,
            context=new AudioContext,
            canClick = true,
            timeOut;
   function makeNoise(){
        if (canClick){
            canClick = false;
            var oscillator = context.createOscillator();
            oscillator.connect(context.destination);
            oscillator.frequency.value = 500;
            oscillator.start(0);
            setTimeout(function(){
                oscillator.disconnect();
                clearTimeout(timeOut);
                canClick = true;
            },1500)
        }
    }
</script>

</body>
</html>
注:我默认了浏览器支持AudioContext

       效果就是播放500hz的声波1.5秒钟

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值