当前位置: 首页 > 知识库问答 >
问题:

web音频api以不同的速率播放哔哔哔…哔哔

丁念
2023-03-14

我正在尝试播放“哔”的声音在不同的速率基于一些传感器读数在一个浏览器窗口。

其想法是,当传感器读数高时,“哔、哔、哔、哔、哔”更快,当传感器读数低时,“哔、哔、哔”更慢,所有这些都是实时的。

传感器读数通过socket.io输入浏览器。我已经可以控制一个上下移动的进度条了。音频反馈是一个额外的功能。

经过一些谷歌搜索,我正在考虑使用web audio api,创建一个正弦波振荡器,并通过一个增益节点连接/断开来打开/关闭它。

我的问题是如何以正确的方式控制定时,比如我试图在1 Hz至20 Hz的频率范围内发出哔哔声,并能够动态改变频率。

共有1个答案

钱睿范
2023-03-14

我最明确的不是通过连接和断开振荡器来打开和关闭它--你必须从主线程来做这件事,所以不是超可预测的。

实际上,您可以使用调制低频振荡器来实现这一点:查看以下代码:

var context = new AudioContext();

//defaults to A440Hz, sine wave
var src = context.createOscillator();

// Now let's create a modulator to turn beeps on and off
var mod = context.createOscillator();
mod.type="square";
mod.frequency.value = "2";  // Start at 2Hz

var gain = context.createGain();
var scaler = context.createGain();

src.connect(gain);
gain.connect(context.destination);

mod.connect(scaler); // Mod signal is [-1,1]
scaler.gain.value = 0.5; // we need it to be [-0.5,0.5]
gain.gain.value = 0.5; // then it's summed with 0.5, so [0,1]
scaler.connect(gain.gain);

//start it up
src.start(0);
mod.start(0);

// to change rate, change mod.frequency.value to desired frequency
 类似资料:
  • 笔试时间:2024年04月20日 历史笔试传送门:2023秋招笔试合集 第一题 题目:找牛牛 青牛小学一年一度的六一儿童节开始了。现在牛牛们围成一圈坐在草地上,为了方便,我们把牛牛们编号为牛1,牛2,牛3,牛n。其中牛1与牛2相邻,牛2与牛3相邻,牛n和牛1相邻。为了更好的安排接下来的活动,牛老师很好奇:从这些牛中选出几只相邻的牛,总共有多少种不同的方案?我们认为两个方案不同,当且仅当两种选法选出

  • 首先说背景:华五本硕,2段相关项目,一篇b会 算法岗的面试好就好在不用准备八股,上来就是自我介绍,项目介绍,刷题这老三样。题是一道基础的dfs,leetcode序号200。 问了面试官工作时长,感觉b站的工作时长都差不多,基本就是早10晚7,属于夜猫子版wlb。 挺多人说算法岗要顶会,但就我切身体验感觉:好学校,对口项目,好论文,三者满足其二就可以了,我也没顶会,但是只要方向对口,面试一般都推的比

  • bg 双非 golang后端 b站二面 自我介绍 挑一个你比较熟悉的项目讲一下 说一下整个项目的开发流程,你是怎么搭建CI/CD的? 架构设计?了解DDD吗?说一下DDD你了解多少。 项目里面的id发号器是怎么部署的?节点id是怎么确定的? 有对项目测试吗?有遇到哪些问题?怎么解决的? 你这个测试链路耗时长怎么定位的?在mysql这一环的性能出问题了你从什么角度去思考和解决?(这个扯的比较多,从建

  • 部门:直播业务   一面(45分钟) 1、自我介绍 2、简历深挖 1.直播转盘功能解决了什么问题 2.你如何衡量他是否解决了这些问题,以及解决效果如何 3.对直播转盘功能1-3年的规划,是什么定位 4.对直播互动功能如何理解的,怎么确定这些需求的优先级 3、业务延伸 1.你觉得b站直播有哪些让你眼前一亮的功能 2.你觉得有哪些比较好的互动工具 3.b站每年都会做lpl直播,让你做一个互动工具提升直

  • 代码题 数组中和为target的元素的下标 代码题 和小于target的最长连续子序列 vue生命周期 vue双向绑定原理 箭头函数 为什么学前端 为什么跨考 已挂,面试体验不好,感觉是kpi面#哔哩哔哩实习#

  • 全程 35 min, 感觉面试官问的有些难度,我答得一般般,没想到竟然过了,已经 oc,感谢面试官~ 1. 自我介绍 2. TCP 和 UDP 的区别? 3. http1.1 和 http2.0 的区别? 4. 讲讲 https 的握手过程? 5. 强缓存和协商缓存? 6. 302 是什么?403 是什么?401 是什么? 7. 哪些地方需要用到缓存? 8. CPU 的调度算法? 9. 链表的结构