如何使用AudioWorklet获取麦克风音量
本文介绍了如何使用AudioWorklet获取麦克风音量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我感兴趣的是在Java脚本中连续读取麦克风音量。StackOverflow上的许多现有解决方案(请参阅here、here和here)使用自2014年起不推荐使用的BaseAudioContext.createScriptProcessor()
。
我想在我的项目中使用面向未来的代码,所以有谁可以分享一个现代的最小示例,说明如何使用新的AudioWorkletNode
读取麦克风音量?
推荐答案
让我们来看看需要了解的几点:
- 所有这些更改都是为了避免延迟,创建自己的线程,即在音频呈现线程(AudioWorkletGlobalScope)上运行。
- 这种新的实现方式由两部分组成:AudioWorkletProcessor和AudioWorkletNode。
- AudioWorkletNode至少需要两项内容:AudioContext对象和字符串形式的处理器名称。可以通过新Audio Worklet对象的addModule()调用加载和注册处理器定义。
- 包括AudioWorklet在内的Worklet API仅在安全上下文中可用。在本例中,我们可以使用本地主机,但有必要了解这一点。
- 我们至少需要从AudioWorkletProcessor向AudioWorkletNode传递当前值或音量,以便对其执行任何操作。
- 必须使用
navigator.getUserMedia
访问您计算机的麦克风
本节介绍的是您可以知道麦克风音量的实现:
最后是html,您可以在其中显示检测到的音量:
这是结果
以下是我在中的实现 codepen来源:
- Enter to Audio worklet
- Web audio
- w3.org/webaudio
这篇关于如何使用AudioWorklet获取麦克风音量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!